Что за ошибка при отправке данных в бд [дубликат]

161
17 октября 2019, 21:40

На данный вопрос уже ответили:

  • mysql_fetch_array() expects parameter 1 to be resource (or mysqli_result), boolean given 3 ответа

У меня такой код:

<html>
<head>
  <html lang="ru">
<meta charset="UTF-8"> 
</head>
</html>
<?php
$host = '';  
$user = '';   
$pass = ''; 
$db_name = '';
$link = mysqli_connect($host, $user, $pass, $db_name); 
mysqli_set_charset($link, 'utf8');
if (!$link) {
  echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() 
. ', ошибка: ' . mysqli_connect_error();
  exit;
}
$id = $_POST['id'];
$title = $_POST['title'];
$text = $_POST['text'];
$code = $_POST['code'];
if (isset($_POST["button"])) {
$sql = mysqli_query($link, "INSERT INTO `python` (`id`, `title`, `text`, 
`code`) VALUES ($id, $title, $text, $code)");
if ($sql) {
  echo '<p>Данные успешно добавлены в таблицу.</p>';
  echo '<meta http-equiv="refresh" content="0; url=../add">';
} else {
  echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>';
}
}
?>

На одном файле я пишу текст в input и textarea и отправляю в этот файл, если я пишу только id, title и text, то всё нормально отправляется, но как только я пишу ещё и code, то выходит ошибка:

Произошла ошибка: You have an error in your SQL syntax; check the manual 
that corresponds to your MariaDB server version for the right syntax to 
use near 'test():
print('Test')
test())' at line 1

Я отправляю туда код языка Python, как исправить ошибку?

Answer 1

Как Вам верно заметил @Ипатьев, то для работы с базой данных лучше использовать PDO.

Но конкретно Ваша проблема в вопросе довольна просто решается:

mysqli_query($link, "INSERT INTO `python` (`id`, `title`, `text`, 
`code`) VALUES ($id, $title, $text, $code)")

Вы вставляемые значения не обрамили как строки. Ну и id не стоит вручную вставлять в БД.

Так что рабочий пример будет выглядеть примерно вот так:

mysqli_query($link, "INSERT INTO `python` (`title`, `text`, 
`code`) VALUES ('$title', '$text', '$code')")
READ ALSO
Переключение точек сбыта

Переключение точек сбыта

Экспериментирую с созданием сайта-магазина на laravel 57

136
Не могу зайти в PHPMYADMIN Docker-compose

Не могу зайти в PHPMYADMIN Docker-compose

При переходе на localhost:8080, на страничку PHPMyadmin появляется 3 поля, сервер, логин, парольЯ записываю так:

150
Laravel Mailables - несколько значений в конструктор

Laravel Mailables - несколько значений в конструктор

Хочу реализовать работу с почтой на основе очередей в ларавелПытаюсь это сделать на основе подхода с Mailables - https://laravel

134
Как (и возможно ли вообще) преобразовать даты из строки

Как (и возможно ли вообще) преобразовать даты из строки

Такая вот, на мой взгляд, интересная задачкаЕсть текст, например:

128