php - Codeigniter 查询显示 num 行 1 但行返回空数组

标签 php mysql codeigniter

我在 CI 2.2 中有以下查询:

$query = $this->db->select($this->identity_column . ', username, email, id, password, active, last_login')
    ->where($this->identity_column, $this->db->escape_str($identity))
    ->limit(1)
    ->get($this->tables['users']);

然后我运行这个:

if ($query->num_rows() === 1)
{
    $user = $query->row();
}

num_rows() 返回 1,所以我进入了 if 语句,但是 $query->row() 返回一个空数组。我运行了生成的 SQL,它实际上抓取了正确的行。

查询对象如下所示:

object(CI_DB_pdo_result)#381 (8) { ["num_rows"]=> int(1) ["conn_id"]=> object(PDO)#380 (0) { } ["result_id"]=> object(PDOStatement)#387 (1) { ["queryString"]=> string(115) "SELECT username, username, email, id, password, active, last_login FROM users WHERE username = 'CORAIR4JK' LIMIT 1" } ["result_array"]=> array(0) { } ["result_object"]=> array(0) { } ["custom_result_object"]=> array(0) { } ["current_row"]=> int(0) ["row_data"]=> NULL }

最佳答案

这不是驱动程序问题,不要从 PDO 转到 OLD MySQL,因为 PDO 更安全,要获得结果,您必须在下面使用,

if ($query->num_rows() === 1)
{
    $user = $query->result_array();
}

这会将所有数据库结果加载到 $user 中并使其成为一个数组。

尽情享受吧!

关于php - Codeigniter 查询显示 num 行 1 但行返回空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32362477/

相关文章:

php - Codeigniter 分组依据

php - 折扣后的 Woocommerce 价格

php - 识别 PHP 未使用的变量

php mysql 求和并排序

mysql - Doctrine - 加载带有法语字符的 YAML 固定装置

css - 事件的 CSS 菜单选项卡

php - 头部的 Magento CSS 和 JS 包括来自文档根目录?

java - Android - 显示 fragment 的问题

php - NULL 作为 codeignitier 事件记录选择中的列?

mysql - node.js + mysql 连接池