Не пойму почему не работает код на PHP для добавления запроса в SQLite3? Помогите, совсем запутался. Начал изучать ООП на PHP, написал вот такой элементарный код и не пойму почему не работает.$title = "Item1"; $category = 1; $description = "Item2"; $source = "Item3"; $db = new SQLite3('DB.sqlite3'); $sql = "CREATE TABLE msgs ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, category INTEGER, description TEXT, source TEXT ) "; $db->exec($sql); unset($db); Эта часть кода отрабатывает нормально, создается файл базы данных с таблицей msgs и полями. Далее пытаюсь добавить данные в таблицу.$sql_insert = "INSERT INTO msgs ( title, category, description, source ) VALUES ( $title, $category, $description, $source )"; $db = new SQLite3('DB.sqlite3'); $db->exec($sql_insert); Выдает ошибку: Warning: SQLite3::exec(): no such column: Item1 in /var/www/html/news/test.php on line 37
Проблема в том, что вы забыли добавить кавычки вокруг значений переменных в запросе SQL INSERT. PHP не подставляет автоматически кавычки при подстановке переменных в запрос, что приводит к ошибке "no such column: Item1".
Исправьте ваш запрос на добавление данных следующим образом:
Проблема в том, что вы забыли добавить кавычки вокруг значений переменных в запросе SQL INSERT. PHP не подставляет автоматически кавычки при подстановке переменных в запрос, что приводит к ошибке "no such column: Item1".
Исправьте ваш запрос на добавление данных следующим образом:
$sql_insert = "INSERT INTO msgs (title,
category,
description,
source )
VALUES (
'$title',
'$category',
'$description',
'$source'
)";
Добавив одинарные кавычки вокруг переменных, вы корректно передадите строки в запросе INSERT.
Пожалуйста, попробуйте внести эту изменение и проверьте, работает ли теперь ваш код.