2010-06-28 2 views
0

Я разрабатываю ORM на основе PDO для таблиц, которые не имеют уникальных полей идентификатора, поэтому, когда я обновляю или удаляю, мне нужно сравнить с предыдущими значениями записи и LIMIT 1.PDO Подготовленный отчет не обновляется Таблица

Когда мой запрос, наконец, попадает в базу данных и выполняется с параметрами, все правильно, что подтверждается общим журналом запросов, однако ничего не происходит.

я не получаю исключения, (PDO::ERRMODE_EXCEPTION включен), и проверка $stmt->errorInfo() возвращается чистый, но $stmt->rowCount() возвращается 0.

Как проверка работоспособности, я открыл файл журнала, скопировал и вставлял запрос UPDATE прямо в Sequel Pro (графический интерфейс OSX MySQL) и выполнялся, и все работало должным образом, обновляя 1 строку.

Почему PDO не обновляет строку, когда выполняется вручную запрос IDENTICAL?

+0

Возможно, вы можете показать код, который не работает? –

+0

Возможный дубликат [PHP PDO Подготовленный запрос оператора, не обновляющий запись] (http://stackoverflow.com/questions/2124294/php-pdo-prepared-statement-query-not-updating-record) –

+0

@Bill: Это не так. Я проверил. Проблема заключалась в том, что они цитировали их заполнители. –

ответ

2

Проблема заключалась в том, что мой код генерируется запрос с использованием

WHERE `FieldName` = NULL 

, когда он должен был

WHERE `FieldName` IS NULL 

Когда выполняется PDO, он держал = NULL, в результате чего никакие записи не будут согласованы, но когда MySQL зарегистрировал его, он зарегистрировал IS NULL, поэтому, когда я копировал/вставлял, запрос был правильным и обновлял строку.

Смежные вопросы