-6

我想知道是否有任何方法可以检查更新查询是否已成功执行,否则我将执行插入查询。

$record = mysql_query("update table set a='$b', b='$c' where id = '$id' "); 
echo $record; // returns always 1;

谢谢你。

4

4 回答 4

4

使用mysql_affected_rows函数查找受影响的记录数。请看下面的代码。

 $record = mysql_query("update table set a='$b', b='$c' where id = '$id' "); 
 $total_rows = mysql_affected_rows($conn);
 echo $total_rows;

其中 $conn 是连接对象

于 2013-09-19T12:24:23.813 回答
2

它会像

$records = mysql_query("UPDATE `table` SET a='$b', b='$c' WHERE id = '$id' "); 
$affected_rows = mysql_affected_rows($records);
if($affected_rows >= 1) {
    echo "Updated ".$affected_rows." rows";
}

$之前需要删除。并mysql_query考虑这table是您的表名,并确保您与数据库的连接处于活动状态

并且尽量避免mysql_*声明,因为整个ext/mysql PHP扩展提供了所有以前缀命名的函数mysql_*,从 开始正式弃用,PHP v5.5.0并将在未来删除

您可以更好地使用其他两个MySQL扩展:MySQLiPDO_MySQL,其中任何一个都可以用来代替ext/mysql.

于 2013-09-19T12:18:44.023 回答
1

试试这个......它返回上次查询运行中修改的行数。

$Rows = mysql_affected_rows($record).

例如 $Rows = 1, 2, 3 等等......

mysql_query():在 UPDATE SQL 的情况下如何检查是否有任何行被更新

于 2013-09-19T12:27:17.770 回答
1

mysql_affected_rows()是你需要的。

文档: http: //php.net/manual/en/function.mysql-affected-rows.php

mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
if (mysql_affected_rows() > 0) {
    echo 'You updated '.mysql_affected_rows(). 'rows.';
} else {
    echo 'Nothing updated';
}
于 2013-09-19T12:29:53.353 回答