使用CodeIgniter上的重复值查询数据绑定

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用CodeIgniter上的重复值查询数据绑定相关的知识,希望对你有一定的参考价值。

假设我有这样的查询:

SELECT *
FROM table
WHERE table.a = 23
AND table.b = 23
AND (23 - table.c)/23 > 0.2

这可能没有任何意义,因为它只是一个例子。我的真实查询比这个查询大得多。如您所见,要绑定的所有值都是等于。

那么,如果所有?都是相同的数据,我如何使用CodeIgniter数据绑定进行此查询?

在数组上重复这样的值在代码上看起来很奇怪:

$sql = "SELECT *"
       ." FROM table"
       ." WHERE table.a = ?"
       ." AND table.b = ?"
       ." AND (? - table.c)/? > 0.2";

$this->db->query($sql, array(23, 23, 23, 23);
答案

Codeigniter似乎不提供命名绑定,因此当所有值相同时的解决方法是使用array_fill

array_fill(0, 5, 23);

会产生:

Array
(
    [0] => 23
    [1] => 23
    [2] => 23
    [3] => 23
    [4] => 23
)

以上是关于使用CodeIgniter上的重复值查询数据绑定的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter - 绑定 EXIST 子查询

如何使用 php 和 codeigniter 隐藏检索到的数据值的重复部分

CodeIgniter 是不是支持命名查询绑定?

从codeigniter中的数据库查询向视图添加动态数据时未定义的变量[重复]

C# 使用数据表在绑定数据网格上的 DataGridComboBoxColumn 上设置值

ASP.NET,将数据绑定到 asp.net 控件并仅显示一次重复值