我正在写一个涉及mysql的PHP代码。有一次,我必须更新我的数据库中的表,我正在使用以下2个语句。但这些都不起作用。
$temp = $row['tracking_id'];
mysql_query("UPDATE order_products SET state=4.00 WHERE tracking_id = '$temp'");
请注意,我没有收到错误消息。该表未更新。另请注意,列名,表名是正确的。我也尝试过在WHERE子句中没有单独的'引用$ temp。
与数据库的连接很好。我知道这个cos选择查询工作正常。
有什么想法吗?
由于
答案 0 :(得分:3)
尝试var_dump temp
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");
它会给你答案
答案 1 :(得分:0)
首先检查$ temp中的值是什么。
如果值很好,就这样做以回应你的查询。
echo $ sql =“UPDATE order_products SET state = 4.00 WHERE tracking_id ='$ temp'”; $ result = mysql_query($ sql);
它仅用于测试并检查查询是否可以?尝试直接运行它,看看是否有任何错误
答案 2 :(得分:0)
你是如何获取行的?
使用mysql_tetch_row
或mysql_fetch_array
?
如果你使用fetch_array
它不是一个关联数组而你不能row['something']
,只能row[index]
,所以请改用fetch_row
。
打印temp的值以验证它是否正常,如果仍然找不到问题,请尝试使用mysql_error()
函数来打印最后一个mysql错误。
答案 3 :(得分: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 - 那么你的表中已经有一行具有完全相同的值