如何在 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格式数据的总和