我正在尝试使用PHP和Mysqli将表单中的数据插入到数据库中,但我无法使其正常工作!我的数据库有4个字段:DATE,TITLE,CONTENT,ID。 ID字段是自动递增的。
我检查了连接,并且工作正常。我也回应了表单字段值和我创建的$ blogDate变量,它们一切都很好。
这是我准备好的陈述:
if ($newBlog = $mysqli->prepare('INSERT INTO Blog VALUES ($blogDate, $_POST["bTitle"], $_POST["bContent"])')) {
$newBlog->execute();
$newBlog->close();
}
这不是将值插入我的表格。
答案 0 :(得分:3)
您正在生成包含未引用或转义的字符串的SQL。
不要将数据直接插入SQL字符串,使用占位符(?
)然后在执行之前绑定参数。
$query = "INSERT INTO Blog VALUES (?, ?, ?)";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("sss", $blogDate, $_POST["bTitle"], $_POST["bContent"]);
$stmt->execute();
答案 1 :(得分:2)
因为您了解准备好的声明:
$newBlog = $mysqli->prepare('INSERT INTO Blog (`dateCol`, `titleCol`, `contentCol`) VALUES (?, ?, ?)');
$newBlog->bind_param( 'sss', $blogDate, $_POST["bTitle"], $_POST["bContent"] );
$newBlog->execute();
$newBlog->close();
答案 2 :(得分:0)
由于您使用的是自动增量字段,因此需要指定列名称,然后指定值 试试这段代码
$query = "INSERT INTO Blog (colname_1,colname_2,colname_3) VALUES (?, ?, ?)";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("sss", $blogDate, $_POST["bTitle"], $_POST["bContent"]);
$stmt->execute();