我想知道是否有任何方法可以检查更新查询是否已成功执行,否则我将执行插入查询。
$record = mysql_query("update table set a='$b', b='$c' where id = '$id' ");
echo $record; // returns always 1;
谢谢你。
使用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 是连接对象
它会像
$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扩展:MySQLi和PDO_MySQL,其中任何一个都可以用来代替ext/mysql.
试试这个......它返回上次查询运行中修改的行数。
$Rows = mysql_affected_rows($record).
例如 $Rows = 1, 2, 3 等等......
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';
}