【发布时间】:2014-06-11 00:18:27
【问题描述】:
我对第一次使用 mysqli 动态参数绑定有点困惑。 我的查询是
UPDATE tb_hotel SET hotel_name = ?, hotel_overview = ?, hotel_active = ?,
hotel_location_description = ?, hotel_location_gmap = ?, hotel_cm_mapping_id = ?
WHERE hotel_id = ?
当我转储传递给 call_user_func_array 的数组时,
array (size=8)
0 => string 'ssisssi' (length=7)
1 => &string 'sdfsfdsf' (length=8)
2 => &string 'sdfdsf' (length=6)
3 => &int 0
4 => &string 'dsfdsfds' (length=8)
5 => &string 'fsdfsdf' (length=7)
6 => &string 'fsdfdsfsdf' (length=10)
7 => &int 17
然后我将它们传递给 call_user_func_array,如下所示。
call_user_func_array(array($stmt, 'bind_param'), $param_array_bind);
我收到错误“警告:mysqli_stmt::bind_param():类型定义字符串中的元素数量与绑定变量的数量不匹配”
谁能帮我解释一下。
【问题讨论】:
-
我看到你有 7 个
?并且你的数组大小为 8...用你的查询检查数据我认为这个数组条目应该被删除2 => &string 'sdfdsf' (length=6) -
是的,但第一个参数是类型列表。我必须在第一个参数中将类型列表传递给 call_user_func_array。我编辑了代码。
-
亲爱的 CodeBird 我已将它们发送到 call_user_func_array。在那种情况下,我必须将类型列表作为第一个元素传递(据我所知)
-
看看这个,它应该对你有帮助:stackoverflow.com/questions/8101071/…你还没有发布你所有的代码,所以不明白你在说什么
-
谢谢,我对建议做了一些修改。但仍然遇到其他一些错误。最后我发现我的 DB TRIGGER 也有错误。感谢您的帮助。
标签: php mysqli prepared-statement