2016-02-26 78 views
-1

我在我的PHP中遇到錯誤。有人可以幫助我嗎?MySQL語法錯誤 - 在第1行

我得到這個錯誤:

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 'fulltext, surl, burl, date) VALUES 'Webite is online!', 'This is a short text lo' at line 1

這是我的代碼:

<?php 
if(isset($_POST['submit'])) { 
     if(!empty($_POST['titel']) && !empty($_POST['stext']) && !empty($_POST['fulltext']) && !empty($_POST['surl']) && !empty($_POST['burl'])) { 
      $titel = secure($_POST['titel']); 
      $stext = secure($_POST['stext']); 
      $fulltext = secure($_POST['fulltext']); 
      $surl = secure($_POST['surl']); 
      $burl = secure($_POST['burl']); 
      $date = date('d/m/y H:i:s'); 

        $sql = mysql_query("INSERT INTO news (titel, stext, fulltext, surl, burl, date) VALUES '".$titel."', '".$stext."', '".$fulltext."', '".$surl."', '".$burl."', '".$date."'")or die(mysql_error()); 
        if($sql) { 
         echo('News posted succesful.'); 
         echo('<meta http-equiv="refresh" content="3" />'); 
        } else { 
         echo'There was an error, please try again.'; 
         echo('<meta http-equiv="refresh" content="3" />'); 
        } 
     } else { 
      echo('Not all fields are filled.'); 
      echo('<meta http-equiv="refresh" content="3" />'); 
     } 
    } else { 
     echo(' 
     <form method="post" action="#"> 
     <table width="100%" cellpadding="0" cellspacing="2"> 
     <tr> 
     <td>Titel</td> 
     <td><input type="text" name="titel" /></td> 
     </tr> 
     <tr> 
     <td>Short news</td> 
     <td><textarea name="stext" rows="4" cols="50" ></textarea></td> 
     </tr> 
     <tr> 
     <td>Long news</td> 
     <td><textarea name="fulltext" rows="4" cols="50" ></textarea></td> 
     </tr> 
     <tr> 
     <td>150x150 image url</td> 
     <td><input type="text" name="surl" /></td> 
     </tr> 
     <tr> 
     <tr> 
     <td>*x* image url</td> 
     <td><input type="text" name="burl" /></td> 
     </tr> 
     <tr> 
     <tr> 
     <td></td> 
     <td><input type="submit" name="submit" value="Post" /></td> 
     </tr> 
     </table> 
     </form>'); 
    } 
?> 
+2

缺少啓動和() – devpro

+0

「INSERT INTO消息(Titel的,STEXT,全文,SURL,節,日期)VALUES('」。$ Titel的。 「 ''」。$ STEXT「。 '' 「$全文」 '' 「$ SURL。」 '' 「$節,」 ''」,$日期。 「'」) – devpro

+2

'插入到表(列)值(值)'。 ...同時使用反向日期列 – devpro

回答

0

首先停止使用mysql_*其棄用,接近PHP 7.使用mysqli_*PDO。在查詢

的問題是,你缺少的VALUES()括號:

INSERT INTO table (column1...) VALUES (values1...) 

你修改後的查詢:

INSERT INTO news (titel, stext, `fulltext`, surl, burl, date) VALUES ('".$titel."', '".$stext."', '".$fulltext."', '".$surl."', '".$burl."', '".$date."'") 

附註:

確保列titel是正確的名稱。

UPDATE:

而作爲Barmar先生@barmar提到fulltext是MYSQL保留字,所以你需要添加反引號圍繞此列。

+1

感謝您的幫助!Devpro您最好的幫助是說,我需要放棄MySQL和開始使用的mysqli或DPO,我也;將代碼更改爲msqli,現在它突然生效,謝謝! – PindaWorld

+0

@pindaworld不在乎哪個回答ü選擇,但很高興使用mysqli的好作品兄弟 – devpro

1

fulltext是一個MySQL reserved word。如果你想用它作爲列名,你需要把它放入反引號中。

您還缺少值列表的括號。

$sql = mysql_query("INSERT INTO news (titel, stext, `fulltext`, surl, burl, date) VALUES ('".$titel."', '".$stext."', '".$fulltext."', '".$surl."', '".$burl."', '".$date."')")or die(mysql_error()); 
+0

酷沒有注意到鷹眼...... – devpro

+1

應該從錯誤信息明顯烏爾知道,因爲它說錯誤的'開始fulltext'。 – Barmar

+0

我確實注意到了,謝謝,已經改變了我發佈後,但感謝注意! – PindaWorld