Php PDO更新错误:参数编号无效-未定义参数
我已阅读了有关此错误的所有主题: 异常“PDOException”,消息为“SQLSTATE[HY093]:参数编号无效:未定义参数 但似乎找不到我错在哪里 我的代码:Php PDO更新错误:参数编号无效-未定义参数,php,pdo,parameters,Php,Pdo,Parameters,我已阅读了有关此错误的所有主题: 异常“PDOException”,消息为“SQLSTATE[HY093]:参数编号无效:未定义参数 但似乎找不到我错在哪里 我的代码: $pdo->executePrepared([ "query"=> "UPDATE users SET studie = :studie, studieland = :studieland, typestudie = :typestudie, jaaropleid
$pdo->executePrepared([
"query"=> "UPDATE users SET studie = :studie, studieland = :studieland, typestudie = :typestudie,
jaaropleiding = :jaaropleiding, onderwijsinstelling = :onderwijsintelling,
biografie = :biografie, voornaam = :voornaam, achternaam = :achternaam,
geslacht = :geslacht, geboortedatum = :geboortedatum WHERE userid = :userid LIMIT 1",
"params"=>[
":studie"=> addslashes($studie_correct),
":studieland"=> $_POST['studieland'],
":typestudie"=> $typestudie,
":jaaropleiding"=> $_POST['jaaropleiding'],
":onderwijsinstelling"=>addslashes($_POST['onderwijsinstelling']),
":biografie"=> addslashes($_POST['biografie']),
":voornaam"=> addslashes($_POST['voornaam']),
":achternaam"=> addslashes($_POST['achternaam']),
":geslacht"=> $_POST['geslacht'],
":geboortedatum"=> $_POST['geboortedatum'],
":userid"=> $userid
]
]);
所有参数都有一个值,因此它们都已定义
我做了很多这样的陈述,他们都做得很好,但我不知道这里出了什么问题
非常感谢您的帮助。我想您使用的是
Phalcon\Db\Adapter\Pdo\Mysql
?只需删除数组键中的:“
”。仅从参数数组中删除它们,而不是从查询字符串中删除它们
$pdo->executePrepared([
"query"=> "UPDATE users SET studie = :studie, studieland = :studieland, typestudie = :typestudie,
jaaropleiding = :jaaropleiding, onderwijsinstelling = :onderwijsintelling,
biografie = :biografie, voornaam = :voornaam, achternaam = :achternaam,
geslacht = :geslacht, geboortedatum = :geboortedatum WHERE userid = :userid LIMIT 1",
"params"=>[
"studie"=> addslashes($studie_correct),
"studieland"=> $_POST['studieland'],
"typestudie"=> $typestudie,
"jaaropleiding"=> $_POST['jaaropleiding'],
"onderwijsinstelling"=>addslashes($_POST['onderwijsinstelling']),
"biografie"=> addslashes($_POST['biografie']),
"voornaam"=> addslashes($_POST['voornaam']),
"achternaam"=> addslashes($_POST['achternaam']),
"geslacht"=> $_POST['geslacht'],
"geboortedatum"=> $_POST['geboortedatum'],
"userid"=> $userid
关于Phalcon PDO的文档:发布完整的代码,包括数据库连接。您确定所有这些变量都设置好了吗?也许你发送了一些空值,这被认为是一个未发送的参数?是的,我确定,我跟踪日志中的所有内容,它们都被填充了。我不知道。我在别人的项目中工作,所有使用的查询都需要重写为这些ExecutePrepares。但正如我在最初的帖子中提到的,我已经用“:”做了很多,而且效果很好。试着不用“:”让我知道。。。这很棘手,因为
execute
使用“:”,但Phalcon的executePrepared
不使用。为什么不尝试使用prepare
,然后使用executePrepared
,就像他们在这里的文档示例中使用的那样:?