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

 PHP.SU

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


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

> Без описания
Нуб-2
Отправлено: 05 Сентября, 2017 - 19:18:02
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2013  


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

[+]


До определенного момента все работало, после того, как сделал условия, перестало :с
Ошибок не выдает, но с базой ничего не делает ни в одном из вариантов.
PHP:
скопировать код в буфер обмена
  1. function addToDB($funcSteamId, $funcSteamVisits, $funcSteamFavs) {
  2.  
  3.     $connection = new PDO('mysql:host=localhost;dbname=dev', 'root', 'root');
  4.  
  5.     $query = $connection->prepare("SELECT COUNT(steamID) FROM guidesStats WHERE steamID=:inputID");
  6.     $query->execute(array(':inputID' => $funcSteamId));
  7.     $result = $query->fetchAll();
  8.  
  9.     if ($result[0][0] == 1) {
  10.         echo "Запись с таким steamID уже существует, обновляю данные...";
  11.         $affectedRows = $connection->prepare('INSERT INTO guidesStats WHERE steamID=:inputID (visitors,favs) VALUES (:inputVisits, :inputFavs)');
  12.         $affectedRows->execute(array(':inputID' => $funcSteamId, ':inputVisits' => $funcSteamVisits, ':inputFavs' => $funcSteamFavs));
  13.     }
  14.     if ($result[0][0] < 1) {
  15.         $affectedRows = $connection->exec('INSERT INTO guidesStats (steamID,visitors,favs) VALUES (' . $funcSteamId . ',' . $funcSteamVisits . ',' . $funcSteamFavs . ')');
  16.         echo "Добавлена запись в БД";
  17.     }
  18.     if ($result[0][0] > 1) {
  19.         echo "В БД >1 записи";
  20.     }
  21.     return 0;
  22. }


Примеры var_dump($result):
Для $funcSteamId = 1
CODE (htmlphp):
скопировать код в буфер обмена
  1. array(1) { [0]=> array(2) { ["COUNT(steamID)"]=> string(1) "3" [0]=> string(1) "3" } }

Для $funcSteamId = 7
CODE (htmlphp):
скопировать код в буфер обмена
  1. array(1) { [0]=> array(2) { ["COUNT(steamID)"]=> string(1) "0" [0]=> string(1) "0" } }

Для $funcSteamId = 1120193385
CODE (htmlphp):
скопировать код в буфер обмена
  1. array(1) { [0]=> array(2) { ["COUNT(steamID)"]=> string(1) "1" [0]=> string(1) "1" } }

(Отредактировано автором: 05 Сентября, 2017 - 19:20:00)

 
 Top
Sail
Отправлено: 09 Сентября, 2017 - 00:43:19
Post Id



Участник


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


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




Нуб-2
В 10 строке - "обновляю данные", а в 11-й: INSERT. Непорядок.
Для случая вставки новой записи (<1) проверьте $affectedRows. Можно использовать PDOException (если уж не смотрите логи, которые веб-сервер пишет) для уточнения проблемы в случае ошибок при записи в базу.
 
 Top
LIME
Отправлено: 09 Сентября, 2017 - 04:23:01
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




///

(Отредактировано автором: 11 Сентября, 2017 - 14:35:44)

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB