MYSQL PHP /命令行语法

时间:2014-02-17 09:47:53

标签: php mysql sql sqlcmd

需要一些帮助,不断得到语法错误,不能为我的生活找到错误。代码和变量正在用于其他查询和表/ dbs。

错误消息

  

找到数据库!   问题更新记录。 MySQL错误:您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以便在'SET LastName ='dfm'附近使用正确的语法,在第2行WHERE StudentID ='123'

     if (!empty($_POST['modify']))
 {
 $connection = mysqli_connect("xxxxx","xxxx","xxxxx");
        // Check connection
        if (!$connection)
    {
        echo "Connection failed: " . mysqli_connect_error();
    }
        else
        {
            //select table
            $dbName="spr14_aglic006";
            mysqli_select_db($connection,$dbName) or die(mysqli_error());
            echo "Database Found! <br>";

下面的语法错误

   $query =("UPDATE students
   SET FirstName='".$_POST['firstName']."', LastName='".$_POST['lastName']."',
   WHERE StudentID='".$_POST['PID']."'");

上面的语法错误

            $res = mysqli_query($connection,$query);

            if ($res)
            {
               echo "<p>Record Updated<p>";
            }   
            else
            {
               echo "Problem updating record. MySQL Error: " . mysqli_error($connection);
            }
        }

        mysqli_close($connection);

     }

任何帮助?

3 个答案:

答案 0 :(得分:2)

查询应为

   $query =("UPDATE students
   SET FirstName='".$_POST['firstName']."', LastName='".$_POST['lastName']."'
   WHERE StudentID='".$_POST['PID']."'");

你有

SET FirstName='".$_POST['firstName']."', LastName='".$_POST['lastName']."', <--

您的查询也是SQL注入的潜力

您在查询中直接使用$ _POST数据,而是使用PDO。

答案 1 :(得分:2)

删除WHERE之前的逗号

 $query =("UPDATE students  SET FirstName='".$_POST['firstName']."', LastName='".$_POST['lastName']."'  WHERE StudentID='".$_POST['PID']."'");  

答案 2 :(得分:1)

SET LastName='dfm', WHERE StudentID='123'' 
                  ^

你有一个流氓逗号。