Когда я выполняю этот запрос, он возвращает 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')";
И еще один вопрос: когда я отправляю сообщение, кажется, что запрос возвращается дважды при выполнении, что означает две записи с одним запросом. Кто-нибудь это понимает?
Если вам нужна дополнительная информация, просто спросите.
Заранее спасибо.
Хотя этот вопрос кажется отвеченным, вы не должны использовать пользовательский ввод непосредственно в запросах, так как это открывает отверстия для уязвимостей, таких как 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-код