我试图将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);
}
Run Code Online (Sandbox Code Playgroud)
有没有人知道更好的方法,或者我的代码只是一个小问题.我正在为预准备语句中的每个变量执行上述操作.
有谁知道是否可以使用MYSQLI bind_param将NULL插入到列中.
我有一种情况,有时我想在bind_param中将列设置为null.像这样......
$column2 = "NULL";
$insert_data->bind_param('ss', $column1,$column2);
Run Code Online (Sandbox Code Playgroud)
显然,这只是将NULL作为字符串写入列.我尝试过null和\ 0但它们不起作用.
我想知道是否有一些值,我可以使$ column2相等,这将导致它提交和实际的空值而不是.
否则,我将不得不动态构建类型和参数列表,并使用call_user_func_array创建我的绑定,以便在它们为null时不写入列.我可以这样做,但它导致了许多繁琐的额外代码,所以我只是想知道这是否可以避免.谢谢