如果该变量存在,我试图将params绑定到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);
}
有没有人知道更好的方法,或者我的代码只是一个小问题。我正在为预准备语句中的每个变量执行上述操作。
答案 0 :(得分:4)
bind_param
以引用方式工作。这意味着它需要一个变量,然后在execute
中使用该变量的值。
null
不是变量。
尝试将变量设置为null
,然后再绑定该变量。
(另外考虑使用PDO而不是mysqli,其中execute
方法可以采用一个简单的数组,你可以绕过mysqli的古怪绑定方法。)
答案 1 :(得分:1)
请记住,您不能两次使用bind_param,因为最后一个语句将替换第一个语句。尝试找一种方法只使用bind_param一次。