Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос по PDO [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Без описания
gheka
Отправлено: 03 Мая, 2015 - 01:41:23
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




exlant пишет:
пример из мануала
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. /* Спровоцируем синтаксическую ошибку SQL */
  3. $stmt = $dbh->prepare('bogus sql');
  4. if (!$stmt) {
  5.     echo "\nPDO::errorInfo():\n";
  6.     print_r($dbh->errorInfo());
  7. }
  8. ?>

http://php.net/manual/ru/pdo.errorinfo.php


Не знаю может если не использовать execute () то сработает и этот вариант но если делать запрос таким
PHP:
скопировать код в буфер обмена
  1.  
  2. $sql = "UPDATE `" . DB_PREFIX . "goods` SET `name`=? WHERE `id`=?";
  3. $stmt = $dbh->prepare ( $sql );
  4. $stmt->execute ( array ('текс', 107) );
  5. print_r ($stmt->errorInfo () );
  6.  


То ошибка выводится, а если использовать print_r ($dbh->errorInfo () ); то ошибки нет. ПРОВЕРЕНО

(Отредактировано автором: 03 Мая, 2015 - 01:42:27)

 
 Top
exlant
Отправлено: 03 Мая, 2015 - 01:55:03
Post Id



Посетитель


Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015  


Помог: 14 раз(а)




gheka скорей всего, я mysqli пользуюсь в основном, c pdo так мельком знаком...
в mysqli после
$stmt = $db->prepare($query) использую $db->error
а уже после
$stmt->execute() использую $stmt->error
возможно в PDO по аналогии!
 
 Top
gheka
Отправлено: 03 Мая, 2015 - 18:23:50
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




Помогите пожалуйста исправить ошибку, вроде всё правильно но почему то выдаёт синтаксическую ошибку.

вот запрос

PHP:
скопировать код в буфер обмена
  1.  
  2. $sql = "SELECT `id` FROM `" . DB_PREFIX . "goods` WHERE `status`=? LIMIT 0,5";
  3. $stmt = $dbh->prepare ( $sql );
  4. $stmt->execute ( array (0) );
  5.  
  6. if ( $data = $stmt->fetchAll () ) {
  7.        
  8.         foreach ( $data as $rows ) {
  9.                 $id_goods = $rows [0];
  10.                 echo $id_goods . '<br />';
  11.         }
  12. }
  13.  

И он работает

Вот точно такой же запрос только числа в LIMIT передаю через EXECUTE ()

PHP:
скопировать код в буфер обмена
  1.  
  2. $sql = "SELECT `id` FROM `" . DB_PREFIX . "goods` WHERE `status`=? LIMIT ?,?";
  3. $stmt = $dbh->prepare ( $sql );
  4. $stmt->execute ( array (0, 0, 5) );
  5.  
  6. print_r ($stmt->errorInfo());
  7.  
  8. if ( $data = $stmt->fetchAll () ) {
  9.        
  10.         foreach ( $data as $rows ) {
  11.                 $id_goods = $rows [0];
  12.                 echo $id_goods . '<br />';
  13.         }
  14. }
  15.  


И он не работает выдаёт ошибку:

Array ( [0] => 42000 [1] => 1064 [2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''0','5'' at line 1 )

Что не так не пойму понятно что дело в переданных данных в LIMIT

Подскажите пожалуйста что не так?

(Отредактировано автором: 03 Мая, 2015 - 18:24:40)

 
 Top
DeepVarvar Супермодератор
Отправлено: 03 Мая, 2015 - 18:27:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Лимит не может быть передан в прераред стейтмент.
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB