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