За последние 24 часа нас посетили 18872 программиста и 1632 робота. Сейчас ищут 857 программистов ...

SQLite3, сколько записей обновилось/вставилось

Тема в разделе "PHP для новичков", создана пользователем Vad0k, 23 ноя 2014.

  1. Vad0k

    Vad0k Активный пользователь

    С нами с:
    17 ноя 2014
    Сообщения:
    23
    Симпатии:
    0
    Есть проблема! Не могу понять, как проверить после SQL - запроса сколько записей в бд обновилось/вставилось
    Код (Text):
    1.  
    2. ....
    3. $sql_DB = new SQLite3('dbC');
    4.  
    5. $sql_update = "UPDATE CATEGORY SET SORT=33,RU='тест',EN='Test',JA='YaponaTest' WHERE KEY_category = -1"; // не должно обновить строку в бд т.к нету KEY_category == -1
    6.  
    7. echo ($sqlite_DB->query($sql_update)) ? "<font color='green'> [OK]</font>":"<font color='red'> [NOPE]</font>";
    8. // Выводит [OK] - запрос успешно прошел, запись он НЕ обновил! это хорошо, но почему вывело ОК??
    9. // ----------------------------
    10.  
    11. $sql_update = "UPDATE CATEGORY SET SORT=33,RU='тест',EN='Test',JA='YaponaTest' WHERE KEY_category = 1"; // должен и как положено обновляет строку в БД.
    12.  
    13. echo ($sqlite_DB->query($sql_update))? "<font color='green'> [OK]</font>":"<font color='red'> [NOPE]</font>";
    14. //Выводит [ОК] - запрос успешно прошел,запись ОБНОВИЛАСЬ, это хорошо
    15.  
    16. ...
    В обоях случаях везде выведено было "ОК", хотя в первом случаи не должно было такое произойти...
    Но мне это понятно что если запрос произошел успешно, метод query что-нибудь вернет отличное от null/0 и конструкция "if" пропустит это как true...,

    И все же мне не понятно: проверил куча методов из объекта SQLite3 и не один из них не позволил мне узнать сколько записей обновилось/вставилось... я даже и не знаю ...
     
  2. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    читай php.net/manual/ru/book.sqlite3.php

    тут php.net/manual/ru/sqlite3.query.php смотри Возвращаемые значения

    искать лучше на английском: php SQLite3 update affected rows
    вот решение php.net/manual/ru/sqlite3.changes.php
     
  3. Vad0k

    Vad0k Активный пользователь

    С нами с:
    17 ноя 2014
    Сообщения:
    23
    Симпатии:
    0
    Спасибо metadon, это то что надо!