PDOException: SQLSTATE[HY093] - when reloading a session (after database transfer SQL format)
- Status
- Closed
- Subject
- PDOException: SQLSTATE[HY093] - when reloading a session (after database transfer SQL format)
- Version
- 4.x
- Category
- Consistency
- Error
- Feature
- All / Undefined
- Resolution status
- Invalid
- Submitted by
- Ushindi Gedeon
- Lastmod by
- Ushindi Gedeon
- Rating
- Description
Hello,
This happens in the same context as my others tracks (3029 - 3057).
This is a problem that is completely identified.
In my opinion it is important.Context
system
The database has been saved in SQL and loaded with upgraded versions of mysql and php 5.3.2.
There is in my opinion no relation with the system context.Program execution
During start the current session prefs contained into cache participate to generation of the query launch to reinit the context of previous current session.
ERROR
__A fatal error occurs in tikisession-pdo.php on line 44 function write statement <$sth->execute();>
Message
PDOException: SQLSTATEHY093: Invalid parameter number: no parameters were bound in D:\Trebly\Teawik-ld8-422a\lib\tikisession-pdo.php on line 44__
Analyze
The var_dump($qry) in "prepare" function (see my interface in Class TikiDb_Pdo) gives (extract)
''object(PDOStatement)42
public 'queryString' => string 'update sessions set data='need_reload_prefs|b:0;serialized_prefs|a:9:{i:0;s:27:"feature....''Problem identified
The problem comes from the fact that into the session->data you can find the HOMEPAGE article "title" which is, in this case (French):
s:46:"Page d'accueil spécifique des administrateurs";
so the " ' " not escaped generates the crash of the request.
Solution ?
Proposal, basis :
When the titles of articles (or any text which can occur into prefs or any query) are stored the " ' " must be escaped into the database.
Proposal for compatibility :
- identify any text which can be used into queries
- be sure that these text have " ' " escaped everywhere, if not
- upgrade database
- upgrade display for these text with escaped " ' "
- upgrade when text is got from forms the data transfer to database with the escaped " ' "
- set a test on syntax queries to catch this error. A simple test of " ' " into query which display error message (because it is impossible to execute a validate successful query).Note :
Note : Temporarily I have implemented for me a syntax control and a validation test for " ' " into the query which escapes the incongruous " ' " with a warning message. This because with this title the content will not be found... but the query don't answers in a right manner.
To execute completely I have suppressed in my test database the " ' " into the titles. This can't be used in an operational config.This occurs because I use for test an homepage which depend of the main group of users of the user.
So I have severals homepages managed as articles with a link to categories.On his homepage a user can in this way find :
- his main homepage
- links to secondary homepages depending of his roles into the site
- Solution
- Workaround
- Priority
- 25
- Demonstrate Bug on Tiki 19+
-
This bug has been demonstrated on show2.tiki.org
Please demonstrate your bug on show2.tiki.org
Show.tiki.org is not configured properlyThe public/private keys configured to connect to show2.tiki.org were not accepted. Please make sure you are using RSA keys. Thanks.
- Demonstrate Bug (older Tiki versions)
-
This bug has been demonstrated on show.tikiwiki.org
Please demonstrate your bug on show.tikiwiki.org
Show.tiki.org is not configured properlyThe public/private keys configured to connect to show.tikiwiki.org were not accepted. Please make sure you are using RSA keys. Thanks.
- Ticket ID
- 3115
- Created
- Wednesday 14 April, 2010 00:16:29 UTC
by Bernard TREMBLAY - LastModif
- Tuesday 02 June, 2026 08:11:26 UTC