mysql一般都要根据返回值判断是否执行成功,那么update成功和没有修改都是0,怎么办
内容相同,update也会是0我怎么使用返回值判断是否成功,万一有的客户就是什么都没改就提交了呢...
内容相同,update也会是0 我怎么使用返回值判断是否成功,万一有的客户就是什么都没改就提交了呢
展开
1个回答
2018-04-10 · 知道合伙人互联网行家
关注
展开全部
PHP中如果不判断sql执行是否成功,就弹出成功提示框,往往会造成虚假注册,实际表单内容没有提交进入数据库。判断sql语句是否执行成功主要用到的函数为mysql_affected_rows() 返回前一次 MySQL 操作所影响的记录行数。
执行成功,则返回受影响的行的数目,如果最近一次查询失败的话,函数返回 -1。 如果最近一次操作是没有任何条件(WHERE)的 DELETE 查询,在表中所有的记录都会被删除,但本函数返回值在 4.1.2 版之前都为 0。 当使用 UPDATE 查询,MySQL 不会将原值与新值一样的列更新。这样使得 mysql_affected_rows() 函数返回值不一定就是查询条件所符合的记录数,只有真正被修改的记录数才会被返回。 下面看两个例子:例一:
$rs=MySQL_query($sql);
if(mysql_affected_rows())
echo "sql执行成功";elseecho "sql执行失败";例二:<?php/* 连接数据库 */
mysql_pconnect("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");
执行成功,则返回受影响的行的数目,如果最近一次查询失败的话,函数返回 -1。 如果最近一次操作是没有任何条件(WHERE)的 DELETE 查询,在表中所有的记录都会被删除,但本函数返回值在 4.1.2 版之前都为 0。 当使用 UPDATE 查询,MySQL 不会将原值与新值一样的列更新。这样使得 mysql_affected_rows() 函数返回值不一定就是查询条件所符合的记录数,只有真正被修改的记录数才会被返回。 下面看两个例子:例一:
$rs=MySQL_query($sql);
if(mysql_affected_rows())
echo "sql执行成功";elseecho "sql执行失败";例二:<?php/* 连接数据库 */
mysql_pconnect("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");
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询