gpt4 book ai didi

php - 如何将 Codeigniter 预格式化查询转换为原始 Mysql 查询(例如 $this->db->select ('table1.*,table2.*,table3.*' ))

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:53 25 4
gpt4 key购买 nike

我有一个使用 CodeIgniter 框架的网站,几乎在每个请求中都使用 CodeIgniter 的预格式化查询类来处理我前同事构建的数据库中的数据。

其中一个例子是这样的:

function tampilkan_data(){
$this->db->select('barang.*,barang_keluar.*,barang_masuk.*');
$this->db->from('barang');
$this->db->join('barang_keluar', 'barang.id_barang=barang_keluar.id_barang','left');
$this->db->join('barang_masuk', 'barang.id_barang=barang_masuk.id_barang','left');
$this->db->order_by('barang.id_barang','asc');
$this->db->order_by('barang.kode_barang','asc');
$this->db->where('barang.status','0');
return $query = $this->db->get()->result();
}

我想更改该查询的结果,但为了首先理解它,我必须将其转换为原始的 MySQL 查询。试图这样做:

SELECT `barang`.*, `barang_keluar`.*, `barang_masuk`.*
FROM `barang` AS A
LEFT JOIN `barang_keluar` AS B ON A.id_barang = B.id_barang
LEFT JOIN `barang_masuk` AS C ON A.id_barang = C.id_barang
ORDER BY A.id_barang ASC, A.kode_barang ASC
WHERE A.status = 0

但是我得到了这个错误

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE A.status = 0 LIMIT 0, 25' at line 6

我试图删除 WHERE A.status = 0看看我的代码哪里出了问题,我得到了这个错误

1051 - Unknown table 'barang'

我认为问题出在 SELECT barang.*, barang_keluar.*, barang_masuk.* 行, 因为我真的不知道如何用 MySQL 原始格式编写它。

我已经搜索过这个主题,我什至尝试将查询直接写到搜索栏,但我没有找到适合我的情况的正确方法。希望有人能帮忙

最佳答案

您可以简单地打印您的查询,然后您可以看到原始 sql 格式的查询。

function tampilkan_data(){
$this->db->select('barang.*,barang_keluar.*,barang_masuk.*');
$this->db->from('barang');
$this->db->join('barang_keluar', 'barang.id_barang=barang_keluar.id_barang','left');
$this->db->join('barang_masuk', 'barang.id_barang=barang_masuk.id_barang','left');
$this->db->order_by('barang.id_barang','asc');
$this->db->order_by('barang.kode_barang','asc');
$this->db->where('barang.status','0');
$query = $this->db->get()->result(); // notice that i have removed the return keyword
echo $this->db->last_query(); // This will print your query directly on the screen.
}

但是您收到的错误是 -> 您没有名为 barang 的表。确保该表存在。

希望对你有帮助...

关于php - 如何将 Codeigniter 预格式化查询转换为原始 Mysql 查询(例如 $this->db->select ('table1.*,table2.*,table3.*' )),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57702792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com