mysql返回修改后

mysql返回修改后,第1张

mysql返回修改后的列_PDO Mysql驱动返回结果的列类型问题

PDO的Mysql驱动返回的结果中,所有的字段都是字符串

使用statement->getColumnMeta得到的列元信息,其中的pdo_type也表明是字符串

php可以自动处理类型转换,比如整型和字符串,但是对于其他环境,比如传给其他平台(如flash),就要在其中一端进行类型转换,或者在协议中处理。另外,要基于查询结果的元信息构建自动化的数据处理,比如ORM,也就不方便了。

原因是,mysql驱动使用mysql_fetch_row函数取得结果集,它是个字符串数组,即所有列都是字符串方式的存储,并且没根据DB存储的类型进行转换,相应地,列的元数据也就都是字符串类型了;

另外,pdo本身的数据类型也有限,跟DB、DB客户端库函数的数据类型有差异,比如pdo没有浮点数类型。

根据pdo接口规范,只要修改mysql驱动中的两个回调函数就可以了:

一个查询 *** 作,不管表里有没有数据,只要语句执行成功都是返回0,查到0条数据也是返回0,返回0表示语句执行成功。

参考:https://dev.mysql.com/doc/refman/5.7/en/mysql-store-result.html

你需要再调用mysql_store_result和mysql_num_rows来得到查询到的记录条数。

我也是想找怎么判断的,我搜到你这问题,没从你这找到答案,结果还是自己解决的,

我没用try catch,用if()

$info =Db::name()~~~~~~update($data)

if($info===0){

return json(['code'=>200,'msg'=>"请不要重复提交",'data'=>[]])

}

虽然都是0,但用“===”来判断,能区别不同

1、=:赋值,在逻辑运算时也有效;

2、==:等于运算,但是不比较值的类型;

3、===:完全等于运算,不仅比较值,而且还比较值的类型,只有两者一致才为真。

其他人都是用try catch,比if()判断好用吧


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8366162.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存