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

  • 相关阅读:
    poj 3264 Balanced Lineup
    poj 2762 Going from u to v or from v to u?
    hdu 3671 Boonie and Clyde
    zoj 3195 Design the city
    poj 1523 SPF
    Codeforces Polo the Penguin and Matrix
    MVC原理的简述(转)
    C#访问权限修饰符
    XML Schema介绍
    Sql批量删除/插入
  • 原文地址:https://www.cnblogs.com/haries/p/6654306.html
Copyright © 2011-2022 走看看