php获取mysql更新结果
update更新时,要是原数据和新数据一样返回受影响行数为0,此时还是成功的,怎么取得这个成功标识啊?...
update更新时,要是原数据和新数据一样返回受影响行数为0,此时还是成功的,怎么取得这个成功标识啊?
展开
5个回答
展开全部
php有一个方法是mysql_affected_rows(),这个方法的意思是获取上一次操作数据库的所影响的行数
可以使用这个方法来判断是否update语句是否执行成功。
直接使用mysql_query($sql),个人觉得其实也可以的,但是前提是数据库类型是那种自动提交类型,像MyISAM 而不是需要手动提交的类型,像:InnoDB
个人理解:自动提交类型会直接处理$sql语句,只要这个语句没有错误,那么就一定是执行成功的。并且一定是已经执行了,但是需要手动提交的类型就算这个SQL没有错误,如果你没有手动提交那么这个语句是不会执行的,那么你的表中的数据其实没有改变,这个尽针对于非select语句。
可以使用这个方法来判断是否update语句是否执行成功。
直接使用mysql_query($sql),个人觉得其实也可以的,但是前提是数据库类型是那种自动提交类型,像MyISAM 而不是需要手动提交的类型,像:InnoDB
个人理解:自动提交类型会直接处理$sql语句,只要这个语句没有错误,那么就一定是执行成功的。并且一定是已经执行了,但是需要手动提交的类型就算这个SQL没有错误,如果你没有手动提交那么这个语句是不会执行的,那么你的表中的数据其实没有改变,这个尽针对于非select语句。
追问
数据的值跟你要跟新的数据一模一样的话,mysql_affected_rows返回的是0,后台判断的话0是不成功的,我希望这个结果还是成功的
追答
你可以将两者结合起来
使用mysql_affected_rows这个方法来判断有没有更新数据,这个是判断影响行数,没有影响为0
加上mysql_query执行的结果,这个是执行结果
用“或”判断就行了。
展开全部
你可以更新的时候更新其他的字段比如添加时间,或者新增字段is_update,这样你就能监控是否更新了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<?php
$sql="update tablename set *=*";
$result=mysql_query($sql);
if (! $result) {
echo "not ok"
exit ();
}
else echo"ok";
?>
$sql="update tablename set *=*";
$result=mysql_query($sql);
if (! $result) {
echo "not ok"
exit ();
}
else echo"ok";
?>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$sql="update sql";
if(mysql_query($sql)){
success
}else{
not success
}
if(mysql_query($sql)){
success
}else{
not success
}
更多追问追答
追问
不对,我是想要原数据跟新数据一样时还是返回成功,你这样会返回失败
追答
你确定?我认为这个语句会成功的。
另外:你所谓的原数据和新数据一样,具体指什么,把你的sql语句写出来看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<?php
/* 连接数据库 */
mysql_connect("localhost", "mysql_user", "mysql_passWord") or die ("Could not connect" . mysql_error());
mysql_select_db("mydb");
/* Update 记录 */
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
print_r("Updated records: %d\n", mysql_affected_rows());
/*mysql_affected_rows() 是取你当前语句执行后影响的行数,如果不等于0说明UPDATA执行成功。所以有了下面判断*/
if(mysql_affected_rows()){
echo "sql执行成功";
}else{
echo "sql执行失败";
}
?>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询