Не работает запрос на вставку в БД. Как исправить?

Не работает запрос INSERT
spoiler
$cat = $_POST['cat'];
$title = $_POST['title'];
$keyw = $_POST['keywords'];
$descr = $_POST['description'];
$textt = $_POST['text'];
$hard = $_POST['hard'];
$mini_img = $_POST['mini_img'];
$source = $_POST['source'];
$file = $_POST['file'];
$file_size = $_POST['file_size'];
$demo = $_POST['demo'];
$syntax = $_POST['syntax'];
$view = 0;
$author = "Николай Чахов";

echo "<pre>";
var_dump ($_POST);
echo "</pre>";

$query = "INSERT INTO `post` (`post_id`, `cat`, `title`, `keywords`, `description`, `text`, `hard`, `mini_img`, `author`, `source`, `file`, `file_size`, `demo`, `date', `view`, `syntax`) 
VALUES (' ',$cat,$title,$keywords,$description,$text,$hard,$mini_img,$author,$source,$file,$file_size,$demo, NOW(),$view,$syntax)";

$result = $con->query($query);
if ($result == true){ 	
	echo "<p>Информация занесена в базу данных</p>"; 
} else { 	
    echo "<p>Информация не занесена в базу данных</p>"; 
    echo('Ошибка : ('. $con->connect_errno .') '. $con->connect_error);
}

Запрос не проходит, ошибок не возвращает.
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Неудивительно что не работает. Тут неправильно примерно всё.

  1. Пробел нельзя вставлять в поле с автоинкрементом. Надо вставлять либо null либо вообще пропустить это поле.
  2. Переменные надо отправлять не напрямую, а через подстановки
  3. Ошибки никогда не надо выводить вручную, а надо оин раз настроить базу чтобы она сообщала об ошибках сама


Код для соединения взять отсюда

А сам запрос выполнять так:
Все переменные надо заменить в запросе на знаки вопроса,
затем подготовить запрос,
привязать к нему переменные,
и выполнить

$query = "INSERT INTO `post` (`post_id`, `cat`, `title`, `keywords`, ...) 
VALUES (null,?,?,?, ..., NOW(),?,?)";
$stmt = $con->prepare($query);
$stmt->bind_param("sss...", $cat,$title,$keywords, ...);
$stmt->execute();
echo "<p>Информация занесена в базу данных</p>";

Количество знаков вопроса в запросе и количество букв "s" в первом параметре bind_param должно соответствовать количеству переменных.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 19:22
18000 руб./за проект
25 апр. 2024, в 19:21
10000 руб./за проект
25 апр. 2024, в 18:47
2795100 руб./за проект