【发布时间】:2018-06-04 09:55:28
【问题描述】:
<?php
include('config.php');
if (isset($_POST['btn'])) {
if (isset($_POST['books'])) {
$b1 = implode(',' , $_POST['books']);
$sql = "INSERT INTO books(book_name) VALUES ('$b1)";
if($conn->query($sql)=== TRUE){
echo "your data is saved";
}else{
echo"try again".$conn->error;
}
$conn->close();?>
<form action="index.php" method="post">
<h3>Select your Books</h3>
<input type="checkbox" name="books[]" value="book1">Book 1
<input type="checkbox" name="books[]" value="book2">Book 2
<input type="checkbox" name="books[]" value="book3">Book 3
<input type="submit" name="btn">
</form>
我是 PHP 的初学者,我正在尝试使用复选框在 db 中插入数据,但每次都会出现错误 " 您的 SQL 语法有错误;请查看与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行的 ''book1,book2,book3)' 附近使用的正确语法”
【问题讨论】:
-
缺少单引号。 $sql = "INSERT INTO books(book_name) VALUES ('$b1')";
-
这应该是答案而不是评论@pr1nc3 :-)
-
我想我明白了 $sql = "INSERT INTO books(book_name) VALUES ('$b1)";缺少一个“'”('$b1')
-
感谢 Bananaapple
-
@AtifRaja - 请注意,您将未经处理的用户输入 (
$_POST) 直接传递到查询中,从而使您容易受到 SQL 注入攻击。在这里查看如何防止这种情况:stackoverflow.com/questions/60174/…
标签: php html mysqlimport