|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2006-03-20 15:50 UTC] albert at jool dot nl
Description:
------------
Create a PDO_MYSQL connection ($db in the example code). Prepare a query with high ascii values between single quotes (update queries are often affected) and one or more named parameters. Execute the query.
Reproduce code:
---------------
$query = "
SELECT '?' as test
FROM test
WHERE id = :id";
$stm = $db->prepare($query);
$stm->execute(array(":id" => 1));
Expected result:
----------------
No errors, query is correct when executed directly under mysql.
Actual result:
--------------
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':id' at line 3
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 29 11:00:01 2025 UTC |
Tried the snapshot, and the problem still exists. Perhaps you aren't seeing the error because you need to explicitly set exception handling: $db = new PDO("mysql:host=$dbHost;dbname=$dbName", $dbUser, $dbPass); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); [.. and then the code ..]