PHP bind_params 为 null
我正在尝试将参数绑定到 INSERT INTO MySQLi 准备好的语句(如果该变量存在),否则插入 null。
这就是我所拥有的,但它不起作用:
if (!empty($name)) {
$result->bind_param('ss', $name, $url_friendly_name);
} else {
$result->bind_param('ss', null, null);
}
if (!empty($description)) {
$result->bind_param('s', $description);
} else {
$result->bind_param('s', null);
}
有谁知道更好的方法来做到这一点,或者我的代码是否存在一个小问题。我正在对准备好的语句中的每个变量执行上述操作。
I am trying to bind params to a INSERT INTO MySQLi prepared statement if that variable exists, otherwise insert null.
This is what I have, but it is not working:
if (!empty($name)) {
$result->bind_param('ss', $name, $url_friendly_name);
} else {
$result->bind_param('ss', null, null);
}
if (!empty($description)) {
$result->bind_param('s', $description);
} else {
$result->bind_param('s', null);
}
Does anyone know of a better way of doing this or is there just a minor issue with my code. I am doing the above for each variable in the prepared statement.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
bind_param
通过引用工作。这意味着它需要一个变量,然后在执行中使用该变量的值。null
不是变量。尝试将变量设置为
null
,然后绑定该变量。(还可以考虑使用 PDO 而不是 mysqli,其中
execute
方法可以采用一个简单的数组,并且您可以绕过 mysqli 的古怪绑定方法。)bind_param
works by reference. That means that it takes a variable, then uses the value of that variable inexecute
.null
is not a variable.Try setting a variable to
null
and then binding that variable instead.(Also consider using PDO instead of mysqli, where the
execute
method can take a simple array and you can bypass wacky binding methodology of mysqli.)请记住,您不能使用bind_param两次,因为最后一个语句将替换第一个语句。尝试找到一种只使用一次bind_param 的方法。
Keep in mind that you can't use bind_param twice, because the last statement will replace the first. Try to find a way to use bind_param just once.