php Codeigniter 4- getLastQuery未返回上次SQL查询[重复]

vjrehmav  于 2023-10-15  发布在  PHP
关注(0)|答案(1)|浏览(111)

此问题已在此处有答案

$this->db->last_query() returns NULL in Codeigniter 4. How to get query SQL?(8个回答)
3天前关闭。
我得到这个

"db":{"DBDriver":"MySQLi","connID":{},"resultID":true,"protectIdentifiers":true,"escapeChar":"`","likeEscapeStr":" ESCAPE '%s' ","likeEscapeChar":"!","dataCache":[],"transEnabled":true,"transStrict":true,"deleteHack":true,"mysqli":{},"resultMode":0,"numberNative":false,"save_queries":true}}

在运行此

$this->db->table($table)->set($set)->where('id', $id)->update();
return $this->db->getLastQuery();

我希望它返回这个

"UPDATE `table` SET `f` = 'v' WHERE `id` = 'id'"

就像他们对更老的Codeigniter所做的那样

return $this->db->last_query();
dxpyg8gm

dxpyg8gm1#

$this->db->getLastQuery();返回的是一个查询对象。从该对象获取最后一个查询的最简单方法是将其转换为string

return (string) $this->db->getLastQuery();

它的作用与:

return $this->db->getLastQuery()->getQuery();

返回查询对象而不是实际查询的好处在于,它扩展了您可以从中获得的可能性。真的很方便,尤其是调试。例如

$this->db->getLastQuery()->getOriginalQuery();

在任何处理之前获取原始语句,

$this->db->getLastQuery()->getDuration();

查找慢查询。
查询对象文档

相关问题