在php-mysql中更新表

时间:2011-08-29 09:49:38

标签: php mysql sql

我正在写一个涉及mysql的PHP代码。有一次,我必须更新我的数据库中的表,我正在使用以下2个语句。但这些都不起作用。

$temp = $row['tracking_id'];  

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

请注意,我没有收到错误消息。该表未更新。另请注意,列名,表名是正确的。我也尝试过在WHERE子句中没有单独的'引用$ temp。

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

有什么想法吗?

由于

4 个答案:

答案 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_rowmysql_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 - 那么你的表中已经有一行具有完全相同的值