php - CodeIgniter 查询生成器类嵌套查询

标签 php mysql codeigniter-3 query-builder

我有一个在 mysql 上运行良好的查询,但我无法让它在 CodeIngniter 的查询生成器类中运行。这是一个具有多个输入的搜索框。

我已经尝试过这个,但无法使其工作。

$this->db->like('num_articulo ', $aricle_number, 'after');
$array = array('descripcion1' => $article_description, 'descripcion2' => $article_description)
$this->db->or_like($array);
$this->db->where('status', 1);
       return $this->db->get('articulos')->result_array();

这是我的sql

SELECT * FROM articulos WHERE num_articulo LIKE 'yyyyy%' AND (descripcion1 LIKE '%xxxx%' OR descripcion2 LIKE '%xxxx%')

最佳答案

CodeIgniter 查询生成器有一个简洁的 query grouping特点:

$this->db->group_start()
$this->db->group_end()

因此,您的查询看起来像,以纯粹的 QB 方式:

$this->db->like('num_articulo ', $aricle_number, 'after');
$this->db->group_start();
    $this->db->like('descripcion1', $article_description);
    $this->db->or_like('descripcion2',  $article_description);
$this->db->group_end();
$this->db->where('status', 1); // This one doesn't seem to appear in your query example?

$this->db->get('articulos')->result_array();

您将收到以下查询:

SELECT * FROM `articulos` WHERE `num_articulo` LIKE 'yyyyy%' ESCAPE '!' AND ( `descripcion1` LIKE '%xxxx%' ESCAPE '!' OR `descripcion2` LIKE '%xxxx%' ESCAPE '!' ) AND `status` = 1

注意:CodeIgniter 在内部添加 ESCAPE '!' 来标识转义符号。

关于php - CodeIgniter 查询生成器类嵌套查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49413802/

相关文章:

php - 我可以创建用于在 Learndash 类(class)中自动注册 WP 角色的功能吗?

php - 如何在 PHP 页面中包含 JSP

php - 如何每天从另一台服务器自动加载数据

php - 这个php函数应该递归运行吗?

mysql - codeigniter 中的值不为空

php - 表单验证中的样式 CodeIgniter "human name"

javascript - 在多个输入文件元素上添加事件监听器

php - 为什么我的 4 个 PHP 输入中只有 1 个正确写入数据库?

MySQL:从伪 View 表更新主表

php - Codeigniter 分页显示太多链接