我想知道是否有任何方法可以检查更新查询是否已成功执行,否则我将执行插入查询。
$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';
}