2014-02-17 70 views
-3

需要一些幫助,不斷收到語法錯誤,不能爲我的生活找到錯誤。代碼和變量正在爲其他查詢和表/ dbs工作。MYSQL PHP /命令行語法

錯誤消息

Database Found! Problem updating record. MySQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET LastName='dfm', WHERE StudentID='123'' at line 2

代碼

 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>"; 

SYNTAX ERROR BELOW

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

SYNTAX ERROR ABOVE

  $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); 

    } 

有什麼幫助嗎?

+6

** **危險面前:你是**易受[SQL注入攻擊(http://bobby-tables.com/)**,你需要來自[自衛](http://stackoverflow.fcom/questions/60174/best-way-to-prevent-sql-injection-in-php)。 – Quentin

+0

也許在你的查詢中試着不換行 – Ajouve

+0

它是查詢周圍的括號嗎? ''查詢= _(_「'和'」'「_)_;' – Sam

回答

2

查詢應儘可能

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

你有

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

也是你的查詢是針對SQL INJECTION潛在

您正在使用直接查詢裏面$ _ POST數據,改用PDO。

+0

謝謝你!!(im a idiot = \ lol) – XoronioX

+1

PDO不會解決問題,準備好的語句/綁定參數將會被PDO支持,但如此mysqli_和OP是否已經在使用mysqli_ – Quentin

+0

是的,不僅僅是PDO,肯定是準備好的語句:-) –

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

你有一個流氓逗號。

+0

只是好奇,爲什麼社區wiki? – Rikesh

+1

@Rikesh - 因爲我真的不想要點對於「看,錯誤信息告訴你這個小小的代碼有問題,逗號沒有意義,甚至可能只是一個錯字」。 – Quentin

+0

謝謝你! (即時白癡= \ lol) – XoronioX

2

刪除逗號這也正是

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

謝謝你! (im idiot = \ lol) – XoronioX