PDO – Динамический bindParam – значение 0 странного результата

Поэтому благодаря предложениям пользователей здесь я начал переносить свой код на PDO. Все шло хорошо, пока не появился маленький вопрос.

У меня есть небольшая функция для обработки вызовов в базе данных, которая в основном генерирует SQL-запрос, выполняет команду $ dbh-> prepare ($ sql), затем выполняет цикл и связывает значения, а затем выполняет запрос.

$sth = $dbh->prepare ($sql); // bind parameters if ($action == 'insert' || $action == 'update') { reset ($array); foreach ($array as $key => &$value) { if ($value != 'NOW()') { $sth->bindParam (':' . $key, $value); } } } $sth->execute(); 

Это работает отлично, пока мне не нужно вставить значение «0». Ошибки не возвращаются, но значение, которое вставлено в db, оказывается максимальным значением для типа столбца в таблице, в данном случае это «137».

Я бы предпочел, чтобы кто-то мог объяснить, что происходит, а также предоставить решение, а не просто дать мне исправление, чтобы я мог лучше понять это.

Привет, Люк

Related of "PDO – Динамический bindParam – значение 0 странного результата"

Вы не привязываете параметры правильно, ознакомьтесь с руководством .
Вы должны использовать:

 $sth->bindParam (':' . $value, [PARAM TYPE - example: PDO::PARAM_INT]);