我如何在 codeigniter 中编写这个 MYSQL 语句?

Posted

技术标签:

【中文标题】我如何在 codeigniter 中编写这个 MYSQL 语句?【英文标题】:How do i write this MYSQL statement in codeigniter? 【发布时间】:2016-07-17 10:41:59 【问题描述】:

SELECT *, (UserPassword = $pass) AS UserPasswordMatch FROM all_users WHERE UserName = $Username

【问题讨论】:

您的意思是使用 Activerecord 吗?因为否则它只是$query = $this->db->query("[...]"); foreach( $query->result() as $row ) [...] 是的 Active Record.. 有人可以帮忙吗? $this->db->query("[...]");不工作..... 【参考方案1】:

您有 2 个选项 作为普通查询

$this->db->query("SELECT *, (UserPassword = $pass) AS UserPasswordMatch FROM all_users WHERE UserName = $Username");
return $this->db->get()->result();

使用 CI 的活动记录

$this->db->select('*')->from('all_users')->where(array('UserPassword' => $pass, 'UserName' => $Username));
return $this->db->get()->result();

【讨论】:

第一个选项不起作用?但是您错过了第二个选项 (UserPassword = $pass) As UserPasswordMatch 错误编号:1054 Champ '40bd001563085fc35165329ea1ff5c5ecbdbbeef' inconnu dans field list SELECT *, (UserPassword = 40bd001563085fc35165329ea1ff5c5) AS UserPasswordMatch WROM all_users> 嗨,对不起,在第一个选项中我写错了句子$this->db->query("SELECT id, UserName, UserPassword AS UserPasswordMatch FROM all_users WHERE UserName = $Username AND UserPassword = $pass"); return $this->db->get()->result();【参考方案2】:

希望这会有所帮助:

第一选择 without using active records:

<?php
$q = $this->db->query("SELECT * FROM all_users WHERE UserName = '$Username' AND UserPassword = '$pass'");
return $this->db->get()->result();
?>

第二个选项使用active records

<?php
$this->db->select('*');
$this->db->from('all_users');
$this->db->where('UserName', $Username);
$this->db->where('UserPassword', $pass);
return $this->db->get()->result();
?>

【讨论】:

以上是关于我如何在 codeigniter 中编写这个 MYSQL 语句?的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter:My_Lang 中的 get_instance

HMVC集成在Codeigniter视图路径中。

我如何在 codeigniter 模型中编写简单的 mysql 查询

如何将Codeigniter与MSSQL(SQL Server)连接?

CodeIgniter 2:如何多次扩展 CI_Controller?

如何在 Codeigniter 4 中扩展控制器?