2011-11-18 67 views
0

我已經使用PHP將條目插入數據庫大約一年了,然後突然間他們今天突然停止插入。我無法弄清楚爲什麼。什麼都沒有改變(據我知道反正!)誰能告訴我什麼是錯的,請:PHP數據庫錯誤

include('db_functions.php'); 
connect_to_db(); 
$query="insert into mixtable (date, djname, title, description, music, tracklist, deleted) values ('".$date."','".$djname."','".$title."','".$description."','".$music."','".$tracklist."', 0)"; 
$result=mysql_query($query); 

if(mysql_affected_rows()==1){ 
Header("Location:admin.php?op=admin&mix=added&news=null"); 
} 
else{ 
    die("there was a problem"); 
} 

的db_functions做工精細,我知道這是因爲在另一頁我打電話使用db_functions和它的數據庫信息工作正常。所有變量都以表格條目的形式存在。就像我說的那樣,現在這一直工作正常。

我得到的問題是「有問題」錯誤。我試過顯示所有錯誤,但是也沒有顯示任何內容。我無法弄清楚它是什麼。有任何想法嗎?

在此先感謝。

+6

你沒有做任何錯誤檢查。你如何期望被告知哪些問題?請參閱'mysql_error()'和完整的參考:[參考:什麼是使用mysql擴展的完美代碼示例?](http://stackoverflow.com/q/6198104) –

+0

感謝Pekka。我正在做一個像noob一樣的php錯誤檢查。在做了sql錯誤檢查之後,我發現問題是因爲信息中有幾個撇號。儘管如此,我在信息中使用了撇號,所以爲什麼現在的錯誤呢?任何想法? – nutman

+0

原因可能是這樣的:http://php.net/manual/en/security.database.sql-injection.php –

回答

0

嘗試將「日期」放在單引號中,因爲date是當前版本的MySQL中的關鍵字。由於數據庫版本升級(可能從4到5),可能發生錯誤。

0

有幾件事情你需要看到。

- >參見下面的查詢

"insert into mixtable (date, djname, title, description, music, tracklist, deleted) values ('{$date}','{$djname}','{$title}','{$description}','{$music}','{$tracklist}', 0)"; 

當您使用雙引號,你不需要使用「」附加字符串。

- >從上面的說明可以清楚地看到,你的查詢沒有執行,試着回顯查詢並在sql編輯器中檢查它,你應該能夠快速調試它。

+0

雖然你是完全正確的,但我發現連接字符串更容易閱讀(我也傾向於在查詢字符串本身中清理我的值,即VALUES(「.dbs($ date)。」...)。 –

0

如果您的表具有自動增量ID,您是否達到了該字段中允許的最大數量?