Php MySQL查询错误
这个MySQL查询有什么问题Php MySQL查询错误,php,mysql,Php,Mysql,这个MySQL查询有什么问题 $name = mysqli_real_escape_string($db,$_POST['name']); $email = mysqli_real_escape_string($db,$_POST['email']); $comment = mysqli_real_escape_string($db,$_POST['content']); $dt = date("F j, Y, g:i a"); $sql = mysqli_query($db, "INSERT
$name = mysqli_real_escape_string($db,$_POST['name']);
$email = mysqli_real_escape_string($db,$_POST['email']);
$comment = mysqli_real_escape_string($db,$_POST['content']);
$dt = date("F j, Y, g:i a");
$sql = mysqli_query($db, "INSERT INTO `tbl_contact` (`id`, `name`, `email`, `comment`, `date`)
VALUES (NULL, '".$name."', '".$email."', '".$comment."', '".$dt."'");
它不断失败
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第2行“”附近要使用的正确语法
谢谢:)您没有关闭SQL中的值括号-最后一行应该是这样结束的:
..., '".$dt."')");
^
Added closing parenthesis for the VALUES clause.
实际上,您需要关闭括号
下次,如果您遇到这种类型的错误,请尝试通过打印它来找出实际执行的SQL。然后,您可以手动分析查询(几秒钟后您就会看到这个查询),或者在某个环境中运行它,在该环境中,如果查询更复杂,您可以轻松地修改和执行查询。为避免此类陷阱,我遵循的一个好做法是在一行中创建查询,然后在下一行中执行查询,如下所示
$sql="INSERT INTO `tbl_contact` (`id`, `name`, `email`, `comment`, `date`)
VALUES (NULL, '".$name."', '".$email."', '".$comment."', '".$dt."')";
$result = mysqli_query($sql);
$sql="INSERT INTO `tbl_contact` (`id`, `name`, `email`, `comment`, `date`)
VALUES (NULL, '$name', '$email', '$comment', '$dt')";
另一个节省时间的技巧是使用不必要的连接来附加'。您的sql本可以像这样更简单
$sql="INSERT INTO `tbl_contact` (`id`, `name`, `email`, `comment`, `date`)
VALUES (NULL, '".$name."', '".$email."', '".$comment."', '".$dt."')";
$result = mysqli_query($sql);
$sql="INSERT INTO `tbl_contact` (`id`, `name`, `email`, `comment`, `date`)
VALUES (NULL, '$name', '$email', '$comment', '$dt')";
如果您使用的是动态生成的SQL,这一点非常重要。如果看不到你的20个concat声明的最终结果,几乎不可能理解到底出了什么问题