我已阅读有关此错误的所有主题:
异常'PDOException',消息'SQLSTATE [HY093]:参数号无效:参数未定义
但似乎无法找到我出错的地方。
我的代码:
$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
]
]);
所有参数都有一个值,因此它们都已定义。
我做了很多这样的陈述,他们都很好,但我不知道这里有什么问题。
感谢任何帮助。
答案 0 :(得分:0)
我认为你正在使用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的文档:https://docs.phalconphp.com/en/latest/api/Phalcon_Db_Adapter_Pdo_Mysql.html