【问题标题】:How to count no of row with like command in Codeignighter如何在 Codeigniter 中使用类似命令计算行数
【发布时间】: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 注入,是吗?
  • 您应该使用$row = $this->db->query(...)->row() anf 然后$count=$row->count 您直接将结果对象分配给字段
  • 您的查询没问题。但是echo $count 是错误的。因为 echo 打印出一个字符串。但是$count 不是字符串。它的对象。尝试使用 print_r 或 var_dump 来查看 $count 是什么。

标签: php codeigniter activerecord 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']);每次运行都给这个一个...所以我使用了第一个。
猜你喜欢
  • 2019-06-07
  • 1970-01-01
  • 2019-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多