2012-07-23 34 views
0

錯誤:您的SQL語法中有錯誤;檢查對應於你的MySQL服務器版本在第1行的代碼是遵循在那裏我得到的錯誤使用接近「1」正確的語法,並且已經來到手動從http://cms2.br-de.tk/editinfo.phphttp://cms2.br-de.tk/updateinfo.php錯誤:您的SQL語法有錯誤;檢查與在第1行'1'附近使用的語法對應的手冊

<?php 
    mysql_connect("mysql10.000webhost.com","******_12","*******") or  die("Error:".mysql_error()); 
    mysql_select_db("******_1");//add your dbname 

    //get the variables we transmitted from the form 
    $Title = $_POST['Title']; 
    $Author = $_POST['Author']; 
    $Date = $_POST['Date']; 
    $Content = $_POST['Content']; 

    //replace TestTable with the name of your table 
    //replace id with the ID of your user 
    $sql = "UPDATE `posts` SET `Tilte` = '$Tilte',`Author` = '$Author',`Date` = '$Date',`Content` = '$Content' WHERE `posts`.`ID` = '$ID' 1 "; 

    mysql_query($sql) or die ("Error: ".mysql_error()); 

    echo "Database updated. <a href='editinfo.php'>Return to edit info</a>"; 

?> 
+2

http://bobby-tables.com/ - 不要使用'mysql_ *',不要通過將字符串混合在一起來構建SQL。 – Quentin 2012-07-23 11:33:18

+0

擺脫查詢'$ sql'字符串中的「1」,並通過轉義來擺脫單引號符號,因爲您將搜索與文字字符串$ Title相同的Title,而不是您的'$ _POST ['標題']的價值。 – teodron 2012-07-23 11:34:15

+0

我秒@什麼@Quentin說,谷歌跨站點腳本和消毒您的SQL查詢+轉義字符串。等等,有很多資源。如果你想從安全的角度來徹底失敗,你可以做到這一點,但它只會具有教學價值。 – teodron 2012-07-23 11:36:33

回答

1

您在查詢結尾添加了1個附加值。它應該是這樣的:

$sql = "UPDATE `posts` SET `Tilte` = '$Title',`Author` = '$Author',`Date` = '$Date',`Content` = '$Content' WHERE `posts`.`ID` = '$ID'"; 
0

您在發言結束時有備用1

UPDATE `posts` SET `Tilte` = '$Title',`Author` = '$Author',`Date` = '$Date',`Content` = '$Content' WHERE `posts`.`ID` = '$ID';" 

由於Grigore正確發現,您的聲明中可能還有一個錯字,具體取決於您的列名。

UPDATE `posts` SET `Title` = '$Title',`Author` = '$Author',`Date` = '$Date',`Content` = '$Content' WHERE `posts`.`ID` = '$ID';" 
0
`Tilte` = '$Title' 

也許這是標題不tilte,除此之外還有一個「1」,就在查詢的結尾

相關問題