<tfoot id='eav1m'></tfoot>

    <legend id='eav1m'><style id='eav1m'><dir id='eav1m'><q id='eav1m'></q></dir></style></legend>

      <small id='eav1m'></small><noframes id='eav1m'>

      <i id='eav1m'><tr id='eav1m'><dt id='eav1m'><q id='eav1m'><span id='eav1m'><b id='eav1m'><form id='eav1m'><ins id='eav1m'></ins><ul id='eav1m'></ul><sub id='eav1m'></sub></form><legend id='eav1m'></legend><bdo id='eav1m'><pre id='eav1m'><center id='eav1m'></center></pre></bdo></b><th id='eav1m'></th></span></q></dt></tr></i><div id='eav1m'><tfoot id='eav1m'></tfoot><dl id='eav1m'><fieldset id='eav1m'></fieldset></dl></div>

        <bdo id='eav1m'></bdo><ul id='eav1m'></ul>
    1. PDO 在 PHP5.4 中以字符串形式返回整数列

      时间:2023-10-05
        <tbody id='phJo4'></tbody>

        <i id='phJo4'><tr id='phJo4'><dt id='phJo4'><q id='phJo4'><span id='phJo4'><b id='phJo4'><form id='phJo4'><ins id='phJo4'></ins><ul id='phJo4'></ul><sub id='phJo4'></sub></form><legend id='phJo4'></legend><bdo id='phJo4'><pre id='phJo4'><center id='phJo4'></center></pre></bdo></b><th id='phJo4'></th></span></q></dt></tr></i><div id='phJo4'><tfoot id='phJo4'></tfoot><dl id='phJo4'><fieldset id='phJo4'></fieldset></dl></div>
        • <bdo id='phJo4'></bdo><ul id='phJo4'></ul>
              <tfoot id='phJo4'></tfoot>
            • <legend id='phJo4'><style id='phJo4'><dir id='phJo4'><q id='phJo4'></q></dir></style></legend>

                <small id='phJo4'></small><noframes id='phJo4'>

                本文介绍了PDO 在 PHP5.4 中以字符串形式返回整数列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                问题描述

                首先,我知道关于 SO 有各种类似的问题,例如 this 和 这个.但是,当我从表中获取值时,整数总是作为字符串获取.

                First of all, I am aware that there are various similar questions on SO such as this and this. However, when I fetch values from a table, integers are always fetched as string.

                我使用的是 PHP5.4 (5.4.16-1~dotdeb.1) 和 MYSQL5.5 (5.5.31+dfsg-0+wheezy1).这里 写到 PHP5 默认启用 MySQL Native Driver.4.0.但我仍然得到字符串值.

                I am using PHP5.4 (5.4.16-1~dotdeb.1) and MYSQL5.5 (5.5.31+dfsg-0+wheezy1). It is written here that MySQL Native Driver is enabled by default in PHP5.4.0. But I still get string values.

                我按如下方式初始化一个 PDO 对象.

                I initialize a PDO object as follows.

                try {
                        $dsn = 'mysql:host=' . DB_HOST . ';dbname=' . DB_NAME . ';charset=utf8';
                
                        $db = new PDO($dsn,DB_USER,DB_PASS);
                
                        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                
                        $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
                    } catch (PDOException $e) {
                        header('HTTP/1.1 500');
                        exit;
                    } catch (Exception $e) {
                        header('HTTP/1.1 500');
                        exit;
                    }
                

                当我插入时,我尝试使用 execute(array(...)) 格式并且还使用了 bindValue(...,PDO::PARAM_INT),但它们没有任何区别.

                When I insert, I tried to use execute(array(...)) format and also used bindValue(...,PDO::PARAM_INT), but they did not make a difference.

                例如,这是我插入新行的方法.

                For example, here is how I insert a new row.

                public function insertList ($db,$account_id,$list_name) {
                    $sql = $db->prepare('INSERT INTO lists VALUES (?,?,?,?,?)');
                
                    try {
                        // $sql->execute(array($list_name,0,0,0,$account_id));
                
                        $sql->bindValue(1,$list_name,PDO::PARAM_STR);
                        $sql->bindValue(2,0,PDO::PARAM_INT);
                        $sql->bindValue(3,0,PDO::PARAM_INT);
                        $sql->bindValue(4,0,PDO::PARAM_INT);
                        $sql->bindValue(5,$account_id,PDO::PARAM_INT);
                        $sql->execute();
                    } catch (PDOException $e) {
                        header('HTTP/1.1 500');
                        exit;
                    } catch (Exception $e) {
                        header('HTTP/1.1 500');
                        exit;
                    }
                }
                

                这是我如何从表中获取行

                Here is how I fetch rows from a table

                public function fetchLists ($db,$account_id) {
                    $sql = $db->prepare('SELECT * FROM lists WHERE account_id=?');
                
                    try {
                        $sql->execute(array($account_id));
                
                        $result = $sql->fetchAll(PDO::FETCH_ASSOC);
                    } catch (PDOException $e) {
                        header('HTTP/1.1 500');
                        exit;
                    } catch (Exception $e) {
                        header('HTTP/1.1 500');
                        exit;
                    }
                
                    return $result;
                }
                

                当我在使用 PHP5.4.7 的 XAMPP for Linux 1.8.1 上测试时没有发生这种情况.我目前使用 nginx 而不是 Apache.

                This did not occur when I tested on XAMPP for Linux 1.8.1 which uses PHP5.4.7. I currently use nginx instead of Apache.

                怎么了?

                推荐答案

                要从带有 PDO 的 mysql 获取具有各自类型的整数和浮点数,您需要同时关闭基于 mysqlnd 的 PDO-mysql 和仿真模式.

                To get integers and floats with respective types from mysql with PDO, you need both mysqlnd-based PDO-mysql and emulation mode turned off.

                这篇关于PDO 在 PHP5.4 中以字符串形式返回整数列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                上一篇:PDO - 无效的参数号 下一篇:PDO lastInsertId 问题,php

                相关文章

                最新文章

                <legend id='cwkic'><style id='cwkic'><dir id='cwkic'><q id='cwkic'></q></dir></style></legend>
              1. <tfoot id='cwkic'></tfoot>

                <small id='cwkic'></small><noframes id='cwkic'>

                <i id='cwkic'><tr id='cwkic'><dt id='cwkic'><q id='cwkic'><span id='cwkic'><b id='cwkic'><form id='cwkic'><ins id='cwkic'></ins><ul id='cwkic'></ul><sub id='cwkic'></sub></form><legend id='cwkic'></legend><bdo id='cwkic'><pre id='cwkic'><center id='cwkic'></center></pre></bdo></b><th id='cwkic'></th></span></q></dt></tr></i><div id='cwkic'><tfoot id='cwkic'></tfoot><dl id='cwkic'><fieldset id='cwkic'></fieldset></dl></div>
                    <bdo id='cwkic'></bdo><ul id='cwkic'></ul>