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不是。

  • 相关阅读:
    HTML 语义化标签-新增标签介绍
    HTML基础知识点
    Android JSON 解析关键代码
    [USACO16DEC]Cities and States省市
    [洛谷P1835]素数密度
    [洛谷P1168]中位数
    [HNOI2008]越狱
    [HAOI2007]上升序列
    [SHOI2009]Booking 会场预约
    [洛谷P1892][codevs2597]团伙
  • 原文地址:https://www.cnblogs.com/haries/p/6654306.html
Copyright © 2011-2022 走看看