|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2005-07-27 15:57 UTC] wb at pro-net dot co dot uk
Description:
------------
When using the same binding id in a query the PDOStatement::execute() method still requires you to specify the same amount of parameters.
Reproduce code:
---------------
<?php
$pdo = new PDO('pgsql:host=localhost dbname=bats user=user password=pass');
$pdo->setAttribute(PDO_ATTR_ERRMODE, PDO_ERRMODE_EXCEPTION);
$statement = $pdo->prepare("
UPDATE groups
SET
lft = CASE WHEN lft > :right
THEN lft + 2
ELSE lft END,
rgt = CASE WHEN rgt >= :right
THEN rgt + 2
ELSE rgt END
WHERE
rgt >= :right
");
$statement->execute(array(':right' => 5));
?>
Expected result:
----------------
Would expect the statement to execute without issue.
Actual result:
--------------
PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[08P01]: <<Unknown error>>: 7 ERROR: bind message supplies 1 parameters, but prepared statement "pdo_pgsql_stmt_08257c0c" requires 3' in /usr/home/wb/bats/scripts/tests/pdoQuery.php:17
Stack trace:
#0 /usr/home/wb/bats/scripts/tests/pdoQuery.php(17): PDOStatement->execute(Array)
#1 {main}
thrown in /usr/home/wb/bats/scripts/tests/pdoQuery.php on line 17
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Nov 05 06:00:01 2025 UTC |
Would $statement = $pdo->prepare(" SET @sql_param=:php_param; SELECT ... FROM TAB where p=@sql_param or q=@sql_param "); $statement->execute(array(':php_param' => $php_variable)); work?Please, solution for this error: <br /> <b>Fatal error</b>: Uncaught PDOException: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'id_client_user' at row 1 in /home/sidecil/subdominios/cloud/apirest/v1/models/post.model.php:37 Stack trace: #0 /home/sidecil/subdominios/cloud/apirest/v1/models/post.model.php(37): PDOStatement->execute() #1 /home/sidecil/subdominios/cloud/apirest/v1/controllers/post.controller.php(17): PostModel::postData('users', Array) #2 /home/sidecil/subdominios/cloud/apirest/v1/routes/services/post.php(37): PostController::postData('users', Array) #3 /home/sidecil/subdominios/cloud/apirest/v1/routes/routes.php(44): include('/home/sidecil/s...') #4 /home/sidecil/subdominios/cloud/apirest/v1/controllers/routes.controller.php(11): include('/home/sidecil/s...') #5 /home/sidecil/subdominios/cloud/apirest/v1/index.php(22): RoutesController->index() #6 {main} thrown in <b>/home/sidecil/subdominios/cloud/apirest/v1/models/post.model.php</b> on line <b>37</b><br />