如何在 Codeigniter 中使用类似命令计算行数

Posted

技术标签:

【中文标题】如何在 Codeigniter 中使用类似命令计算行数【英文标题】:How to count no of row with like command in Codeignighter 【发布时间】:2018-04-10 16:57:18 【问题描述】:

我已尝试使用此代码计算行数

$count = $this->db->query("select count(*) from cgdict where cg like '%".$search_data."%'");

echo $count;

它给了我一个错误

Object of class CI_DB_mysqli_result could not be converted to string

【问题讨论】:

你想要那个 SQL 注入,是吗? mysqli : mysqli_result could not be converted to string的可能重复 您应该使用$row = $this->db->query(...)->row() anf 然后$count=$row->count 您直接将结果对象分配给字段 您的查询没问题。但是echo $count 是错误的。因为 echo 打印出一个字符串。但是$count 不是字符串。它的对象。尝试使用 print_r 或 var_dump 来查看 $count 是什么。 【参考方案1】:

使用num_rows() 来计数函数,因为$count 是一个数组(如果不为空):

$query = $this->db->query("select * from cgdict where cg like '%".$search_data."%'");
$result = $query->result_array()
$num= $result ->num_rows();
echo $num;

或者

$query = $this->db->query("select count(*) as TotCount from cgdict where cg like '%".$search_data."%'");
$result = $query->result_array()

echo count($result[0]['TotCount']);

安全说明

在将$search_data 直接发送到SQL 查询之前,请确保您使用$this->input->post 来捕获并清除SQL 注入。

【讨论】:

我通过 $query = $this->db->query("select * from cgdict where cg like '%".$search_data."%'"); $num= $result ->num_rows();回声 $num; $result = $query->result_array();那里不需要……它现在可以正常工作了……谢谢…… 回声计数($result[0]['TotCount']);每次运行都给这个一个...所以我使用了第一个。

以上是关于如何在 Codeigniter 中使用类似命令计算行数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 php 中使用 exec 命令运行 codeigniter 控制器功能

如何在codeigniter中使用mysql substring_index计算JSON格式数据的总和

如何在codeigniter中使用存储过程的结果集

如何在codeigniter中计算group_concat

使用 CodeIgniter 以日期格式在数据库上计算每月、每年的日期

在 Codeigniter 插入数组中使用类似 NOW() 的东西