• mysql更新返回值问题(更新内容跟之前内容一样,返回0)


    mysql更新返回值问题 

    问:

    有一界面要更新个人信息,有几十个text标签需要填写
    假设有一用户从用户列表点修改进入了修改页面,但又没有修改什么,马上点击保存
    这时,因为text标签非常多,不能够一一判断用户是否修改了什么,就直接将post过来的值
    去update, 但因为新值和旧值都是一样,这样mysql返回影响的行数为0
    在ms sql server,oracle中,不管新值旧值是否一样,返回的影响的行数都是1的
    当出现这种情况时,是不是该考虑是否出现异常,再判断修改是否成功?(之前是根据返回的值,为1,则提示修改成功,为0则提示修改失败)

     
    答:
    判断是否执行成功不应该用返回影响的行数来判断吧?应该根据mysql_query()返回的记过判断吧?
    这个很简单呀。

    因为mysql_query()函数如果执行成功会返回非false,如果出错了才会返回false,所以在检查返回值的时候要通过===false才是正确的。例如:

     
    $result = mysql_query("update table set a='123'");
    if($result === false){
    or die("Invalid query: " . mysql_error());
    }

    以下是PHP手册上对mysql_query()方法返回值的解释:


    返回值:
    mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。 很有可能一条查询执行成功了但并未影响到或并未返回任何行。

    原文地址:http://www.dewen.net.cn/q/1887

  • 相关阅读:
    python 4 days
    python 3 days
    python 2 days
    Git学习1-- 简介、命令使用、添加远程仓库方法
    Week2-列表、字符串方法示例
    Week2-购物车程序
    Week2-模块初识和数据类型
    Week1-作业:用户登陆程序
    Week1-Python入门教程(后续完善中)
    Intellij IDEA(eclipse设置)常用快捷键
  • 原文地址:https://www.cnblogs.com/skysowe/p/6482632.html
Copyright © 2020-2023  润新知