За последние 24 часа нас посетили 95422 программиста и 5700 роботов. Сейчас ищут 2002 программиста ...

SQLite exec

Тема в разделе "PHP для новичков", создана пользователем kozak, 18 окт 2016.

  1. kozak

    kozak Новичок

    С нами с:
    6 янв 2015
    Сообщения:
    36
    Симпатии:
    0
    Создал страницу :
    PHP:
    1. class TreeDB extends SQLite3
    2. {
    3.     function __construct()
    4.     {
    5.         $this->open('tree.db');
    6.     }
    7. }
    8. $db = new TreeDB();
    9.  
    10.  
    11. $db->exec(' CREATE TABLE tree(
    12.        id_tree INTEGER PRIMARY KEY,
    13.        desc_tree ,
    14.        id_parent INTEGER
    15.        )');
    16. $db->exec('INSERT INTO tree (desc_tree,id_parent) VALUES (\'Раздел №1\',0)');
    17. $db->exec('INSERT INTO tree (desc_tree,id_parent) VALUES (\'Раздел №2\',0)');
    18. $db->exec('INSERT INTO tree (desc_tree,id_parent) VALUES (\'Раздел №3\',0)');
    19. $db->exec('INSERT INTO tree (desc_tree,id_parent) VALUES (\'Раздел №4\',0)');
    20. $db->exec('INSERT INTO tree (desc_tree,id_parent) VALUES (\'Раздел №5\',0)');
    21. $db->exec('INSERT INTO tree (desc_tree,id_parent) VALUES (\'Раздел №6\',0)');
    22. $result = $db->query('SELECT id_tree FROM tree');
    23. print_r($result->fetchArray());
    Дело в том что SELECT выводит только одну запись в чём проблема не могу понять....
     
  2. Васяня

    Васяня Активный пользователь

    С нами с:
    2 окт 2016
    Сообщения:
    238
    Симпатии:
    32
    Адрес:
    Россия, Приморский край, г. Находка.
    А что возвращают insert'ы? И в exec запросы можно разделять точкой с запятой.
    --- Добавлено ---
    Для desc_tree не указан тип.
     
  3. kozak

    kozak Новичок

    С нами с:
    6 янв 2015
    Сообщения:
    36
    Симпатии:
    0
    спасибо за подсказку по поводу exec =)
    сделал так
    PHP:
    1. $res[] = $db->exec('INSERT INTO tree (desc_tree,id_parent) VALUES (\'Раздел №1\',0)');
    2. $res[] = $db->exec('INSERT INTO tree (desc_tree,id_parent) VALUES (\'Раздел №2\',0)');
    3. $res[] = $db->exec('INSERT INTO tree (desc_tree,id_parent) VALUES (\'Раздел №3\',0)');
    4. $res[] = $db->exec('INSERT INTO tree (desc_tree,id_parent) VALUES (\'Раздел №4\',0)');
    5. $res[] = $db->exec('INSERT INTO tree (desc_tree,id_parent) VALUES (\'Раздел №5\',0)');
    6. $res[] = $db->exec('INSERT INTO tree (desc_tree,id_parent) VALUES (\'Раздел №6\',0)');
    выводит
    Array ( [0] => 1 [1] => 1 [2] => 1 [3] => 1 [4] => 1 [5] => 1 )
     
  4. Васяня

    Васяня Активный пользователь

    С нами с:
    2 окт 2016
    Сообщения:
    238
    Симпатии:
    32
    Адрес:
    Россия, Приморский край, г. Находка.
    Ну в бд записи добавляються. А ошибки пишет? Попробуй:
    PHP:
    1. echo $db->lastErrorMsg();
     
  5. kozak

    kozak Новичок

    С нами с:
    6 янв 2015
    Сообщения:
    36
    Симпатии:
    0
    пишет unknown error после SELECT
    --- Добавлено ---
    переделал в один exec всё тоже самое
    --- Добавлено ---
    пересоздал базу
    PHP:
    1. $db->exec(' CREATE TABLE tree(
    2.        id_tree INTEGER PRIMARY KEY,
    3.        desc_tree  TEXT,
    4.        id_parent INTEGER
    5.        )');
    --- Добавлено ---
    проблема в SELECT но я её в упор не вижу
     
  6. Васяня

    Васяня Активный пользователь

    С нами с:
    2 окт 2016
    Сообщения:
    238
    Симпатии:
    32
    Адрес:
    Россия, Приморский край, г. Находка.
    Записи надо в цикле перебирать:
    PHP:
    1. $results = $db->query('SELECT id_tree FROM tree');
    2. while ($row = $results->fetchArray()) {
    3.     var_dump($row);
    4. }
    Слона блин не заметил)))
     
    kozak нравится это.
  7. kozak

    kozak Новичок

    С нами с:
    6 янв 2015
    Сообщения:
    36
    Симпатии:
    0
    Спасибо большое! =)