gpt4 book ai didi

php - 为什么准备语句会导致绑定(bind)中的参数数量错误?

转载 作者:太空宇宙 更新时间:2023-11-03 10:50:28 24 4
gpt4 key购买 nike

我得到了

mysqli_stmt_bind_param(): Number of variables doesn't match number of parameters 

警告

来自以下语句:

mysqli_stmt_bind_param($stmt, "ss", $str_addr_no, $str_addr);

我四处寻找 where ... like 示例,但看不出我的语法有什么问题。

$link = mysqli_connect("localhost","fred","password","h2o_amr");

$str_addr_no = $_REQUEST['meter_street_number'];
$str_addr = $_REQUEST['meter_street_address'];

$stmt = mysqli_stmt_init($link);
mysqli_stmt_prepare($stmt, "select w.* from water w where w.mtr_addr_no like '?%' and w.mtr_addr_str like '?%' "))

mysqli_stmt_bind_param($stmt, "ss", $str_addr_no, $str_addr);

有没有办法让 PHP 显示或检查准备好的语句以查看实际准备了多少参数?

最佳答案

您引用了您的占位符:'?%',这会将它们变成字符串,而不是占位符。占位符必须是 BARE ? 字符:

SELECT ... WHERE foo = ? // OK
SELECT ... WHERE Foo = '?' // no parameters here, just a string

对于通配符 LIKE 查询,您必须求助于 hack:

SELECT ... WHERE foo LIKE CONCAT('%', ?)

关于php - 为什么准备语句会导致绑定(bind)中的参数数量错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25572237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com