PHP bind_params with null

落爺英雄遲暮 提交于 2019-12-01 02:27:03

问题


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.


回答1:


bind_param works by reference. That means that it takes a variable, then uses the value of that variable in execute.

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.)




回答2:


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.



来源:https://stackoverflow.com/questions/5214574/php-bind-params-with-null

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!