我在将字符串参数绑定到语句时遇到麻烦。我使用这个示例代码:http://php.net/manual/en/mysqli-stmt.bind-param.php#106402
现在我正在尝试使用该函数将参数绑定到语句。
绑定整数可以正常工作:
iQuery("SELECT * FROM sometable WHERE somecol=?", array('i', 123));
这样的字符串也可以:
iQuery("SELECT * FROM sometable WHERE someothercol=?", array('s', 'foo'));
然而,这不起作用:
$value = 'foo';
iQuery("SELECT * FROM sometable WHERE someothercol=?", array('s', $value));
// Error message: Parameter 3 to mysqli_stmt::bind_param() expected to be a reference, value given
// (Occurs at the $method->invokeArgs line)
当我在$val
周围加上引号时,它不会给出错误,但没有返回行。
有谁知道是什么原因造成的,我该如何解决我的问题?
更新/解决方案:
好的,知道了!我应该更好地阅读这条信息和样本。解决方法是添加&
$value = 'foo';
iQuery("...", array('s'), &$value);
好吧,既然你使用不同的变量名,难怪:
$value = 'foo';
^^^^^^---full name
iQuery("..snip...", array('s', $val));
^^^^---undefined var here