php-mysql中的表更新

php-mysql中的表更新,php,mysql,sql,Php,Mysql,Sql,我正在编写一个涉及mysql的php代码。有一次,我必须更新数据库中的一个表,我正在使用下面的两条语句。但这些都不起作用 $temp = $row['tracking_id']; mysql_query("UPDATE order_products SET state=4.00 WHERE tracking_id = '$temp'"); 请注意,我没有收到错误消息。但是,该表没有更新。还要注意,列名、表名是正确的。我还尝试在WHERE子句中不使用$temp左右的单引号 与数据库的连接正

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

$temp = $row['tracking_id'];  

mysql_query("UPDATE order_products SET state=4.00 WHERE tracking_id = '$temp'");
请注意,我没有收到错误消息。但是,该表没有更新。还要注意,列名、表名是正确的。我还尝试在WHERE子句中不使用$temp左右的单引号

与数据库的连接正常。我知道这是因为select查询工作正常

有什么想法吗

谢谢

试着改变温度

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");
mysql\u查询(“updateorder\u products SET state=4.00,其中tracking\u id='$temp')或trigger\u error(mysql\u error()”尝试var\u 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");

mysql\u查询(“updateorder\u products SET state=4.00,其中tracking\u id='$temp')或trigger\u error(mysql\u error()”首先检查$temp中的值

如果值很好,则按此方式执行以响应您的查询

echo$sql=“更新订单”产品设置状态=4.00,其中跟踪标识=“$temp”; $result=mysql\u查询($sql)


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

首先检查$temp中的值

如果值很好,则按此方式执行以响应您的查询

echo$sql=“更新订单”产品设置状态=4.00,其中跟踪标识=“$temp”; $result=mysql\u查询($sql)


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

您是如何获取该行的

使用
mysql\u tetch\u行
mysql\u fetch\u数组

如果使用的是
fetch\u数组
它不是关联数组,并且不能执行
row['something']
,只能执行
row[index]
,因此请改用
fetch\u row


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

您是如何获取该行的

使用
mysql\u tetch\u行
mysql\u fetch\u数组

如果使用的是
fetch\u数组
它不是关联数组,并且不能执行
row['something']
,只能执行
row[index]
,因此请改用
fetch\u row

打印temp的值以验证它是否正常,如果仍然无法找到问题,请尝试使用
mysql\u 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-那么表中已经有一行具有完全相同的值

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

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

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

您是否想过将“”设置为4.00左右?是否回显mysql_error();?temp是否包含正确的值?是否尝试在4.00左右添加“”?尝试此
回显“更新顺序”\u products SET state=4.00,其中tracking_id='$temp''
并将答案粘贴到mysql命令行客户端。应该会告诉您丢失的详细信息是的,我也尝试了4.00左右的引号,不是吗work@Nibhrit:请发布mysql_错误();你有没有想过将“”设置为4.00左右?你有没有回显mysql_错误()呢?temp是否包含正确的值?您是否尝试在4.00左右添加“”?尝试此
echo“updateorder\u products SET state=4.00,其中tracking\u id='$temp'
并将答案粘贴到mysql命令行客户端中。应该提供您丢失的详细信息是的,我也尝试在4.00左右使用引号,不是work@Nibhrit:请发布mysql_错误();你知道行提取工作正常,因为我回显了此语句上方行的内容行提取工作正常,因为我回显了此语句上方行的内容是的。看来有人删除了我正在处理的表。数据库位于一个公用服务器上,因此需要一段时间才能解决此问题。mysql\u错误wa太好了。谢谢你,别死!那既不安全又不能用。@Pekka:啊,我是瞎子。这肯定不是不安全,但不可行,是的。谢谢你的帮助suggestion@genesis“不安全”位表示即使在生产模式下也会显示错误消息,而假设是
trigger_error()
不会。是的,成功了。看起来好像有人删除了我正在处理的表。数据库在一个公共服务器上,所以花了一段时间才弄清楚。mysql\u错误帮了大忙。谢谢,别死!这既不安全又不可用。@Pekka:啊,我是瞎子。它确实不安全,但不可用,是的。谢谢你的帮助suggestion@genes是“不安全”位指的是即使在生产模式下也会显示错误消息,而假设
trigger\u error()
不会显示错误消息。