【问题标题】:Codeigniter query to mssql queryCodeigniter 查询到 mssql 查询
【发布时间】: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


【解决方案1】:

您好,希望对您有所帮助...

"SELECT tbl_user.*,tbl_assign_role.* FROM tbl_user left join tbl_assign_role on tbl_assign_role.tar_owner_id = tbl_user.u_id where tbl_user.u_uname = '".htmlspecialchars($username)."' and tbl_user.u_pword ='".MD5($password)."' and tbl_user.is_active='1' limit 1";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多