MySQL整数字段在PHP中以整数形式返回

时间:2017-02-19 09:26:19

标签: php mysql

我知道当MySQL返回数据时,它会以字符串形式返回,而不会返回MySQL数据类型。

那么为什么当我运行这个准备好的语句时,我得到一个整数?

    $id = '1';

    sql = "SELECT * FROM
            USER
            WHERE user_id = ? ";

    $stmt = $this->conn->prepare($sql);
    $stmt->bind_param('i', $id);
    $stmt->execute();

    $user = $stmt->get_result();

    return ($user->num_rows == 1) ? $user : NULL ;


    if ($user) {

    while($row = $result->fetch_assoc()) {
        $data = array();
        $data["user_id"]      = $row["user_id"];

    return $data; 

当我运行php gettype($ data ['user_id'])时,我得到一个整数。

我认为数据类型将始终转换为字符串。

1 个答案:

答案 0 :(得分:2)

它并不总是以字符串形式返回。也许你使用的PHP版本高于5.3(PHP 5.3的版本是用mysqlnd编译的(而不是旧的libmysql)),使用mysqlnd作为本机驱动程序,本机驱动程序适当地返回整数类型。 请检查您当前使用的版本。 有关详细信息,您可以浏览此链接。 http://blog.ulf-wendel.de/2008/pdo_mysqlnd-the-new-features-of-pdo_mysql/