2012-02-20 12 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

引用符を忘れた場合、彼はあなたの価値を列とみなします –

答えて

2

SQL文に余分なカンマはありませんか?

あなたは、VALUES句ではなく、挿入も

$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の変数を使用していると思いました。 –