Вставка и отправка SQL

Когда я выполняю этот запрос, он возвращает false, что означает, что запрос неверен. Можете ли вы понять, почему?

$string1 = 'wee'; $string2 = 'wee'; $string3 = 'wee'; $string4 = 'wee'; if (isset($_POST['submit'])) { $query = "INSERT INTO data (book, title, content, author) VALUES ($string1, $string2, $string3, $string4)"; mysql_query($query, $con); } 

Однако, когда я помещаю что-то вроде следующего, он возвращает true и вставляет правильно:

 $query = "INSERT into data (book, title, content, author) VALUES ('wee', 'wee', 'wee', 'wee')"; 

И еще один вопрос: когда я отправляю сообщение, кажется, что запрос возвращается дважды при выполнении, что означает две записи с одним запросом. Кто-нибудь это понимает?

Если вам нужна дополнительная информация, просто спросите.

Заранее спасибо.

Related of "Вставка и отправка SQL"

Хотя этот вопрос кажется отвеченным, вы не должны использовать пользовательский ввод непосредственно в запросах, так как это открывает отверстия для уязвимостей, таких как SQL Injection (и это плохо mmmay)

Если вы посмотрите на страницу mysql на php.net ( mysql_query ), страница говорит, что рекомендуется использовать слой абстракции, такой как PDO ( pdo-mysql )

Использование PDO позволит вам привязывать параметры к вашим SQL-запросам, чтобы обойти последствия для безопасности использования пользовательского ввода в ваших запросах.

Если вы не привязываете параметры к своим запросам, у вас будет плохое время.

Тип данных поля – строка или varchar, поэтому вам нужно поместить «или» вокруг них.

Измените свой запрос, как показано ниже.

 $query = "INSERT into data (book, title, content, author)VALUES ('".$string1."', '".$string2."', '".$string3."', '".$string4."')"; 

Чтобы решить проблему с отправкой, отправьте свой html-код