mysql — операторы обновления PHP PDO всегда возвращают 0 строк, затронутых rowCount ()

Я знаю, что это вопрос нубов, однако по какой-то причине мои операторы обновления всегда возвращают счетчик строк, равный 0, независимо от того, изменилась ли одна или несколько строк в результате запроса.

Используя стандартные php и pdo подготовленные запросы. Протестировал выбранные операторы, и они нормально работали с возвратом rowCount число. Но обновлений не так много. Вот мой код Любое понимание было бы здорово.

$sql = "UPDATE token SET tokenkey = ? WHERE token_id = 1";
$r = $this->database->databaseConnections['core']->prepare($sql);
$r->setFetchMode(\PDO::FETCH_ASSOC);
$data = "123123";
$res = $r->execute(array($data));

echo $r->rowCount();

Я использовал тот же код (но с SELECT) и результат будет больше 0. Я изменяю переменную данных, она выполняется, я проверяю в базе данных sql, она успешно обновилась. Но все равно счетчик строк равен 0, несмотря на то, что я вижу в phpmyadmin обновленную строку, и если я запускаю sql напрямую в phpmyadmin, он возвращает 1 поврежденную строку. Смущенный.

Я также проверил на PDO ошибок и получения нет.

Для получения дополнительной информации мои коннекторы базы данных pdo настроены со следующей конфигурацией (игнорируя сами детали соединения.

        $connection->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$connection->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_ASSOC);
$connection->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);
$connection->exec('SET NAMES utf8');

Спасибо заранее за помощь.

Ура,

Masbie

0

Решение

После долгих поисков. Пришлось отпустить разочарования, поэтому удалил всю трассировку работающего сервера XAMPP. Затем просто переустановил его. Та же установка и версия, которую я использовал раньше. А затем повторно введите код. И теперь это работает. Похоже, что в серверной базе произошла некоторая порча.
ура

-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]