2011-08-22 45 views
0

我试图让php使用UPDATE语句更新MySQL表,但它根本无法工作。这是我写的代码:无法让SQL Update使用PHP

$add = "1"; 

$counter=mysql_query("SELECT * FROM frases WHERE id = '".$id."'"); 

while ($ntcounter=mysql_fetch_array($counter)) {  
    mysql_query("UPDATE frases SET count = '".$ntcounter[count]+$add."' WHERE id = '".$id); 
} 

正如你所看到的,我基本上是试图更新SQL记录来跟踪了多少次访问特定内容ID。

谢谢!

回答

1

你并不真的需要两个查询。你应该能够像这样更新

mysql_query("UPDATE frases SET `count` = `count` + 1 WHERE id = ".$id); 
+0

谢谢!这很好! – user906379

2

在SQL查询中使用别名(它不是强制性的,但它使查询更具可读性。

SELECT * as count FROM frases WHERE id = '".$id."'" 

而且您现在可以访问您的变量

$ntcounter['count'] 

所以结果:

$add = "1"; 

$id = (int)$id 
$counter = mysql_query("SELECT * as count FROM frases WHERE id = '".$id."'"); 

while ($ntcounter = mysql_fetch_assoc($counter)) {  
    mysql_query("UPDATE frases SET count = '".($ntcounter['count']+$add)."' WHERE id = '".$id); 
} 
1

您没有关闭在更新声明结尾的单引号:

mysql_query("UPDATE frases SET count = '".$ntcounter[count]+$add."' WHERE id = '".$id."'")