-1

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

<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, как исправить ошибку?

  • вы этот свой "insert into" запихайте куда нить в $sql = и сделайте print_r($sql) и посмотрите на что будет похож ваш запрос после вставки. особенно как там экранируеются строки и т.д. – teran Feb 21 '19 at 12:59

1 Answers1

-2

Как Вам верно заметил @Ипатьев, то для работы с базой данных лучше использовать 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')")
dlarchikov
  • 4,403