2011-08-29 67 views
0

我正在写一个涉及mysql的php代码。在某一点上,我必须更新我的数据库中的一个表,我使用下面的两个语句。但这些都不起作用。在php-mysql中更新表格

$temp = $row['tracking_id']; 

mysql_query("UPDATE order_products SET state=4.00 WHERE tracking_id = '$temp'"); 

请注意,我没有收到错误消息。该表虽然没有更新。还要注意,列名,表名是正确的。我也试过在WHERE子句中没有$ temp附近的单引号。

与数据库的连接很好。我知道这个COS选择查询工作正常。

任何想法?

感谢

+0

你有没有想过把“”围绕4.00? –

+0

你是否回应了mysql_error(); ? temp是否包含正确的值?你是否尝试在4.00左右添加“'? –

+0

试试这个'echo“UPDATE order_products SET state = 4.00 WHERE tracking_id ='$ temp'”'并将答案粘贴到mysql命令行客户端。应该给你详细的你缺少的东西 – Ravi

回答

3

尝试的var_dump临时

var_dump($temp); 

,并从您的查询检查错误

mysql_query("UPDATE order_products SET state=4.00 WHERE tracking_id = '$temp'") or trigger_error(mysql_error()." <here is that problem"); 

它会给你你的答案

+0

是的,工作。看起来有人删除了我正在处理的表格。数据库位于通用服务器上,因此需要花费一些时间才能弄清楚。 mysql_error非常有帮助。谢谢 – Nibhrit

+0

请不要死!这既不安全也不可用。 –

+0

@Col谁?什么? – genesis

0

首先检查的价值是什么在$ temp中。

如果数值没问题,可以这样做来回应您的查询。

echo $ sql =“UPDATE order_products SET state = 4.00 WHERE tracking_id ='$ temp'”; $ result = mysql_query($ sql);

它只用于测试和检查查询是否正常?尝试直接运行它,看看是否有任何错误

0

你是如何获取行?

使用mysql_tetch_rowmysql_fetch_array

如果你使用fetch_array它不是一个关联数组,你不能做row['something'],只有row[index],所以用fetch_row来代替。

打印temp的值以验证它是否正常,如果仍然找不到问题,请尝试使用mysql_error()函数来打印最后一个mysql错误。

+0

行提取工作正常工作正在回应此语句上方行的内容 – Nibhrit

0

请注意,我没有收到错误消息。

难怪。您必须向数据库询问错误消息。

$tmp = mysql_real_escape_string($row['tracking_id']); 
$sql = "UPDATE order_products SET state=4.00 WHERE tracking_id = '$tmp'"; 
mysql_query($sql) or trigger_error(mysql_error()." ".$sql); 
var_dump(mysql_affected_rows); //to see if rows were changed. 

如果只打印0 - 那么你在你的表有完全相同的值的行已经