新人求教mysql里边用update修改没有的数据也会执行成功

Jss_hoho 2015-08-30 10:15:38
学习写代码的时候发现修改数据的时候如果mysql里边没有的 用update修改的会也会返回执行成功 这个时候该怎么办 要先用sql查询判断数据是否存在吗?
...全文
477 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
uncle_ll 2018-12-04
  • 打赏
  • 举报
回复
在使用UPDATE更新记录时,如果被更新的字段的类型和所赋的值不匹配时,MySQL将这个值转换为相应类型的值。 如果这个字段是数值类型,而且所赋值超过了这个数据类型的最大范围,那么MySQL就将这个值转换为这个范围最大或最小值。 如果字符串太长,MySQL就将多余的字符串截去。如果设置非空字段为空,那么将这个字段设置为它们的默认值,数字的默认值是0,字符串的默认值是空串(不是null,是"")。 有两种情况UPDATE不会对影响表中的数据。 1. 当WHERE中的条件在表中没有记录和它匹配时。 2. 当我们将同样的值赋给某个字段时,如将字段abc赋为'123',而abc的原值就是'123'。
历努 2015-08-30
  • 打赏
  • 举报
回复

    function ToolDML($db,$sql){
    	$host="localhost";
    	$user="root";
    	$password="root";
    	
    	
    //1.连接数据库
       $conn=mysql_connect($host,$user,$password);
       if(!$conn){
       	die(mysql_error());
       	}    
    //2.选择数据库
       mysql_select_db($db,$conn);
    
    //3.设置数据库字符集
       mysql_query("set names gbk");
    //4.发送指令sql (ddl 数据定义语句 , dml(数据操作语言 update insert ,delete) ,dql (select ), dtl 数据事务语句 rollback commit... )
       $res=mysql_query($sql,$conn);
       if(mysql_affected_rows() == 0){
       	  echo "DML操作没有影响";
       	}
       if(!$res){
       	die(mysql_error());
       	}
     //5. 关闭连接
        mysql_close($conn);
        
}

  $sql = "update price set goodprice=230 where id=19;";
  $db = "test";
  ToolDml($db,$sql);
mysql_affected_rows 这个函数可以取得前一次 MySQL 操作所影响的记录行数。
Jss_hoho 2015-08-30
  • 打赏
  • 举报
回复
引用 1 楼 fdipzone 的回复:
执行更新后,使用 mysql_affected_rows 会返回改变了记录的条数。 可通过这个来判断更新是否有执行。
已经查到了谢谢
Jss_hoho 2015-08-30
  • 打赏
  • 举报
回复
引用 1 楼 fdipzone 的回复:
执行更新后,使用 mysql_affected_rows 会返回改变了记录的条数。 可通过这个来判断更新是否有执行。
大侠可以具体讲一下用什么代码吗
傲雪星枫 2015-08-30
  • 打赏
  • 举报
回复
执行更新后,使用 mysql_affected_rows 会返回改变了记录的条数。 可通过这个来判断更新是否有执行。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧