[英]Updating table in php-mysql
我正在写一个涉及mysql的php代码。 有一次,我必须使用以下2条语句更新数据库中的表。 但是这些都不起作用。
$temp = $row['tracking_id'];
mysql_query("UPDATE order_products SET state=4.00 WHERE tracking_id = '$temp'");
请注意,我没有收到错误消息。 该表虽然未更新。 另请注意,列名,表名正确。 我也尝试过在WHERE子句中在$ temp周围没有单引号引起来。
与数据库的连接很好。 我知道这cos选择查询工作正常。
有任何想法吗?
谢谢
尝试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");
它会给你答案
首先检查$ temp中的值。
如果value很好,就可以这样做来回显您的查询。
echo $ sql =“ UPDATE order_products SET state = 4.00 WHERE tracking_id ='$ temp'”; $ result = mysql_query($ sql);
它仅用于测试和检查查询是否可以? 尝试直接运行它,看看是否有任何错误
您是如何获取该行的?
使用mysql_tetch_row
或mysql_fetch_array
吗?
如果您使用的是fetch_array
则它不是一个关联数组,并且您不能执行row['something']
,只能执行row[index]
,因此请改用fetch_row
。
打印temp的值以验证它是可以的,如果仍然找不到问题,请尝试使用mysql_error()
函数来打印最后一个mysql错误。
请注意,我没有收到错误消息。
难怪。 您必须向数据库询问错误消息。
$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,则表中已经有一行值完全相同的行
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.