zoukankan      html  css  js  c++  java
  • 关于PDO取得结果集的数据类型为string的问题

    很久没写些什么了, 正好今天工作中遇到了以前在意过的问题。

    之前曾注意到过,php从数据库中取得的结果集后,其中的字段全都会变成string类型。今儿通过ajax调取数据, 有一个type字段是int型, 没多想就在js里面写了 

    if (data.type) {
        // do sth  
    }

    结果发现没进入if, debug一下发现data.type值是“0”, 才想起是数据类型的问题。

    其实php经过不断的发展, 正在成为一门更完善的WEB脚本语言。详细了解后得知,早期的mysql扩展是不能获取结果集中字段的数据类型的,后来的mysqli扩展配合mysqlnd驱动则是可以的,随后的PDO扩展就更不在话下了。但是需要做一定的配置:

    //关闭string转换
    $pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
    //关闭模拟prepare
    $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

    php框架的数据库类一般也是封装的PDO, 所以对其进行相应配置即可。

    经过测试,确定Laravel是以此作为默认设置的, 而Yii2不是。

  • 相关阅读:
    爬取阳光问政平台
    CrawlSpider爬取腾讯招聘信息
    LinkExtractor
    镜像源列表
    screen命令总结
    PHP解决中文乱码问题
    Linux查找大文件或目录
    CentOS6/7系列防火墙管理
    删除win10冗余的服务
    解决win10安装wireshark新版本,欢迎界面卡顿情况
  • 原文地址:https://www.cnblogs.com/haries/p/6654306.html
Copyright © 2011-2022 走看看