Я пытаюсь связать 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); }
Кто-нибудь знает лучший способ сделать это или есть только незначительная проблема с моим кодом. Я делаю выше для каждой переменной в подготовленном сообщении.
bind_param
работает по ссылке. Это означает, что он принимает переменную, а затем использует значение этой переменной при execute
.
null
– это не переменная.
Попробуйте установить переменную в значение null
а затем привяжите эту переменную.
(Также рассмотрите использование PDO вместо mysqli, где метод execute
может принимать простой массив, и вы можете обойти дурацкую методологию привязки mysqli.)
Имейте в виду, что вы не можете использовать bind_param дважды, потому что последний оператор заменит первый. Попробуйте найти способ использовать bind_param только один раз.