Не пойму почему не работает код на 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

21 Авг 2019 в 07:04
238 +1
0
Ответы
1

Проблема в том, что вы забыли добавить кавычки вокруг значений переменных в запросе SQL INSERT. PHP не подставляет автоматически кавычки при подстановке переменных в запрос, что приводит к ошибке "no such column: Item1".

Исправьте ваш запрос на добавление данных следующим образом:

$sql_insert = "INSERT INTO msgs (
title,
category,
description,
source )
VALUES (
'$title',
'$category',
'$description',
'$source'
)";

Добавив одинарные кавычки вокруг переменных, вы корректно передадите строки в запросе INSERT.

Пожалуйста, попробуйте внести эту изменение и проверьте, работает ли теперь ваш код.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир