如何将 Mysql 查询转换为 Codeigniter 语法?

How to convert from Mysql query to Codeigniter syntax?

我只是尝试将我的 sql 查询转换为 codeigniter 语法,但我做不到

UPDATE tblUserController 
INNER JOIN tblUser on tblUserController.FK_userID  = tblUser.id
SET tblUserController.passwordWrong = 1, tblUserController.updatedAt = '2019-10-04 12:19:51'
WHERE  tblUserController.FK_userID = '2'
AND ( tblUserController.FK_loggedID = '1' OR tblUser.updatedAt < DATE_ADD(NOW(), INTERVAL 3 HOUR) )

codeigniter 是一个 php 网络框架,SQL 是一个数据库查询语言。我相信你的问题需要重新措辞以包含你想要实现的更广泛的意图。

没有将 MySQL 查询转换为 CodeIgniter 语法的直接方法。但是,嘿,你也不需要。 你可以 运行 MySQL 直接在 CodeIgniter 中查询。

要提交查询,请使用查询功能:

$this->db->query('YOUR QUERY HERE');

但是如果您仍然需要将 MySQL 查询更改为 CodeIgniter 语法,您可以通过 Query Builder Class of CodeIgniter.

我认为这可能是您的解决方案,无需将您的查询转换为 CI 查询生成器。

$SQL = "SELECT bla bla bla...";
$query = $this->db->query($SQL);
return $query->result_array();

您可以像这样在 codeigniter 语法中转换 raw query

$sql = "UPDATE tblUserController 
INNER JOIN tblUser on tblUserController.FK_userID  = tblUser.id
SET tblUserController.passwordWrong = 1, tblUserController.updatedAt = '2019-10-04 12:19:51'
WHERE  tblUserController.FK_userID = '2'
AND ( tblUserController.FK_loggedID = '1' OR tblUser.updatedAt < DATE_ADD(NOW(), INTERVAL 3 HOUR) )
";
$this->db->query($sql);

你可以这样使用:

$sqlRawQuery = "UPDATE tblUserController 
INNER JOIN tblUser on tblUserController.FK_userID  = tblUser.id
SET tblUserController.passwordWrong = 1, tblUserController.updatedAt = '2019-10-04 12:19:51'
WHERE  tblUserController.FK_userID = '2'
AND ( tblUserController.FK_loggedID = '1' 
OR tblUser.updatedAt < DATE_ADD(NOW(), INTERVAL 3 HOUR) )
";
$this->db->query($sqlRawQuery);