繁体   English   中英

在php-mysql中更新表

[英]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_rowmysql_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM