2012-02-20 215 views
0
When doing a simple insert into an MYSQL database, I get this error 

「未知列‘Af452OtQa’在‘字段列表’」未知列錯誤插入查詢

「Af452OtQa」是,我試圖插入列「SERIALNUM」的值全部變量是根據前一頁的POST值設置的,除了這個字段外,它們都是urlencoded,我爲它創建了一個值,因此知道它除了字母數字外沒有任何內容。

 $insertSQL = sprintf("INSERT INTO Presentations ('serialnum', 'docurl', 'tracker', 'recipient', 'last_accessed') VALUES (%s, %s, %s, %s, %s,)", 
    $sn,$doc,$trackr,$recip,$lastacc); 
+1

你忘了報價,他認爲你的價值是一列 – 2012-02-20 20:59:44

回答

2

在你的SQL語句中沒有額外的逗號嗎?

您需要的值子句中的報價,而不是列名插入

$insertSQL = sprintf("INSERT INTO Presentations "+ 
           "(serialnum, docurl, tracker, recipient, last_accessed) "+ 
           "VALUES ('%s', '%s', '%s', '%s', '%s')", 
           $sn,$doc,$trackr,$recip,$lastacc); 

同樣的部分:你有沒有想過使用綁定變量,因爲你的代碼很容易受到SQL注入攻擊。

+0

我不知道該怎麼做。我認爲這就是使用%s變量所做的。 – 2012-02-21 01:21:43