在第1行''附近使用的Mysql语法

时间:2014-08-13 10:24:55

标签: php mysql

大家好,我的代码我遇到过这样的错误: """您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第1行"""

    <?php
$con = mysql_connect("localhost","root","");
if(!$con){
die('could not connect' .mysql_error());
}

mysql_select_db("phptest",$con);

$insert="INSERT INTO persons (FirstName,LastName)VALUES('$_POST[firstname]','$_POST[lastname]'";
if(!mysql_query($insert,$con))
{
    die('error:' .mysql_error());
}
echo "1 record added";

mysql_close($con);

?>

简单的代码,但我不知道哪里错了......

4 个答案:

答案 0 :(得分:2)

  1. 您忘记了陈述中的结束)

    INSERT INTO persons (FirstName,LastName)
    VALUES('$_POST[firstname]','$_POST[lastname]')
    

  2. 您需要转义用户输入

    • 避免查询中的语法错误
    • 和SQL注入

    使用准备好的陈述

答案 1 :(得分:0)

请更正此语法,如下所示 $insert="INSERT INTO persons (FirstName,LastName)VALUES('$_POST[firstname]','$_POST[lastname]')";

答案 2 :(得分:0)

您尚未关闭打开TO INSERT VALUES的括号。您缺少)。关闭此括号并使用以下代码

<?php
$con = mysql_connect("localhost","root","");
if(!$con){
die('could not connect' .mysql_error());
}

mysql_select_db("phptest",$con);

$insert="INSERT INTO persons (FirstName,LastName)VALUES('$_POST[firstname]','$_POST[lastname]')";
if(!mysql_query($insert,$con))
{
    die('error:' .mysql_error());
}
echo "1 record added";

mysql_close($con);

?>

我应该建议你不要使用用户输入来插入数据。这可以让黑客更容易破解你的SQL,这是通过sql注入。

SQL注入:它是什么?

SQL注入是黑客用来从组织窃取数据的众多Web攻击机制之一。它可能是当今使用的最常见的应用层攻击技术之一。正是这种攻击类型利用了Web应用程序的不正确编码,允许黑客将SQL命令注入登录表单,以允许他们访问数据库中保存的数据。

答案 3 :(得分:-1)

您缺少)

$insert="INSERT INTO persons (FirstName,LastName)VALUES('$_POST[firstname]','$_POST[lastname]')";