2016-05-26 4 views
0

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

Использование стандартных 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

Почему в ваших функциях есть черты лица? 'SELECT' не должен выдавать * any * result, потому что [' rowCount() 'dooesn't не работает с операторами' SELECT'.] (Http://php.net/manual/en/pdostatement.rowcount.php) –

+0

что такое ваш запрос 'select'? Я сомневаюсь в вашем заявлении 'update' –

+1

обратных косых чертах, поскольку я строю это в другом пространстве имен. – JMasbie

ответ

-1

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