Php 未知列?
“字段列表”中的未知列“Abu” 这是我正在制作的一个小评论框 当我输入我的名字和评论时,它将不起作用,但是如果我输入名字字段和评论字段,它将起作用???? 这是我的剧本Php 未知列?,php,mysql,sql,Php,Mysql,Sql,“字段列表”中的未知列“Abu” 这是我正在制作的一个小评论框 当我输入我的名字和评论时,它将不起作用,但是如果我输入名字字段和评论字段,它将起作用???? 这是我的剧本 $name=$_POST['name']; $comment=$_POST['comment']; $submit=$_POST['post']; if($_POST['name'] && $_POST['comment'] && $submit) { $insert=mysq
$name=$_POST['name'];
$comment=$_POST['comment'];
$submit=$_POST['post'];
if($_POST['name'] && $_POST['comment'] && $submit)
{
$insert=mysql_query("INSERT INTO `comment (`name`,`comment`)
VALUES ($name,$comment) " ) or die(mysql_error());
}
else
{
echo "please fill out all fields";
}
如果列的数据类型为字符串,则值应使用单引号包装,因为它们是字符串文字
INSERT INTO comment (name,comment) VALUES ('$name','$comment')
作为旁注,如果变量的值来自外部,则查询易受攻击。请看下面的文章,了解如何预防它。通过使用PreparedStatements
可以避免在值周围使用单引号
$insert=mysql_query("INSERT INTO comment
(name,comment)
VALUES ($name,$comment) " )
应该是
$insert=mysql_query("INSERT INTO comment
(name,comment)
VALUES ('$name','$comment') " )
。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO
您也对
会解决你的问题。。但是其他开发者可能已经注意到了一些东西,但没有指出。。您尚未关闭SQL查询的倒勾:
INSERT INTO `comment
应该是:
INSERT INTO `comment`
对列/表/架构名称使用反勾号没有错。。事实上,建议使用它们,以最大限度地降低遇到SQL保留字的风险。。如果它们正确打开/关闭哇,谢谢!是的,我更喜欢使用PDO,但我的主机不提供。悲哀地我将研究如何防止SQL注入。谢谢你的链接!所以我唯一的问题是,对于SQL,我只是将它设为非直接条目$dbconnection()您也可以使用,但不鼓励这样做,因为它在
PHP5.5.0
上会被弃用,我将使用PDO,减少麻烦。再加上更简单。个人规则保持简单…[亲吻-保持简单水手]:)
是的,我会让我的代码更现代。我刚刚开始编写PHP,上一次使用PHP大约是在10年秋天。我不确定SQL保留字是什么,不管怎么做。谢谢你的邀请tip@user2288998这篇文章回顾了可能出现的错误消息,并对我所说的保留字进行了解释
INSERT INTO `comment`