PHP bind_params为null

时间:2011-03-07 00:30:04

标签: php mysqli prepared-statement

如果该变量存在,我试图将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);
}

有没有人知道更好的方法,或者我的代码只是一个小问题。我正在为预准备语句中的每个变量执行上述操作。

2 个答案:

答案 0 :(得分:4)

bind_param以引用方式工作。这意味着它需要一个变量,然后在execute中使用该变量的值。

null不是变量。

尝试将变量设置为null,然后再绑定该变量。

(另外考虑使用PDO而不是mysqli,其中execute方法可以采用一个简单的数组,你可以绕过mysqli的古怪绑定方法。)

答案 1 :(得分:1)

请记住,您不能两次使用bind_param,因为最后一个语句将替换第一个语句。尝试找一种方法只使用bind_param一次。