【发布时间】:2015-07-28 05:52:54
【问题描述】:
如何将这行代码转换为 MSSQL Server 2012 接受的查询?
我收到此错误调用 C:\xampp\htdocs\pis\application\models\main.php 中布尔值的成员函数 num_rows() 当我尝试将其转换为对 mssql 的查询
function login($username, $password) {
$this -> db -> select();
$this -> db -> from('tbl_user');
$this -> db -> JOIN('tbl_assign_role', 'tbl_user.u_id = tbl_assign_role.tar_owner_id');
$this -> db -> where('tbl_user.u_uname = ' . "'" . htmlspecialchars($username) . "'");
$this -> db -> where('tbl_user.u_pword = ' . "'" . MD5($password) . "'");
$this -> db -> where('tbl_user.is_active = 1');
$this -> db -> limit(1);
$query = $this -> db -> get();
if($query -> num_rows() == 1)
{
return $query->result();
}
else
{
return false;
}
}
我改成这个
$query = "SELECT * FROM tbl_user
LEFT JOIN tbl_assign_role ON tbl_user.u_id = tbl_assign_role.tar_owner_id
WHERE tbl_user.u_name = '".$username."'
AND tbl_user.u_pword = '".MD5($password)."'
AND tbl_user.is_active = 1
FETCH NEXT 1 ROWS ONLY
";
在我改变之后,那变成了错误。
它现在正在工作。我所做的是
$query = "SELECT TOP 1 * FROM tbl_user
JOIN tbl_assign_role ON tbl_user.u_id = tbl_assign_role.tar_owner_id
WHERE tbl_user.u_uname = '".htmlspecialchars($username)."'
AND tbl_user.u_pword = '".MD5($password)."'
AND tbl_user.is_active = 1";
$query = $this->db->query($query);
【问题讨论】:
-
我根本不知道 codeigniter。但是
num_rows方法不需要任何参数吗? -
在 codeigniter 中不需要参数。
-
你想在 MySql 中从 codeigniter 方法转换这个查询吗?
-
codeigniter 中有一个函数可以将整个 codeigniter 查询转换为 sql 命令。请使用 $this->db->last_query();它会给你 sql 语句,然后你可以随意使用它。
-
使用 $query->result();我可以使用 return $this->db->last_query(); ?
标签: php mysql sql-server codeigniter