【问题标题】:MySQL - CodeIgniter Fails to Interpolate Query ParametersMySQL - CodeIgniter 无法插入查询参数
【发布时间】:2013-01-12 03:14:03
【问题描述】:

好的,我正在运行一个查询,但 CodeIgniter 给了我这个错误:

错误号:1064

您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 第 4 行的 '' 附近

SELECT username FROMfriend_request JOIN user ON user_id = 朋友 WHERE(朋友 = '8' AND 发件人 =

我确实意识到,它没有捕获发件人,但是 $this->session->userdata('user_id') 回显为 4(这是我的 user_id)... 那怎么什么都没有出现呢?

$this->db->query('SELECT username
    FROM friend_request
    JOIN user ON user_id = friend
    WHERE (friend = ? AND sender = ?)
    OR (friend = ? AND sender = ?)', 
        $user->row()->user_id, 
        $this->session->userdata('user_id'), 
        $this->session->userdata('user_id'), 
        $user->row()->user_id);

if($this->db->num_rows() > 0) {
    $this->errors->set_error('You either have a pending request from '.ucfirst($this->db->row()->username).' 
        or you have already requested their friendship!');
    return false;
}

我尝试将所有内容放在一条线上,因为我不知道输入是否会破坏任何内容,但它仍然没有解决任何问题。

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    您收到错误是因为您应该在查询结果上使用num_rows,而不是在数据库上。另外,你的查询绑定是错误的。

    $query = $this->db->query(
      'SELECT username
      FROM friend_request
      JOIN user ON user_id = friend
      WHERE (friend = ? AND sender = ?)
      OR (friend = ? AND sender = ?)', 
      array(
        $user->row()->user_id, 
        $this->session->userdata('user_id'), 
        $this->session->userdata('user_id'), 
        $user->row()->user_id
      )
    );
    
    if ($query->num_rows() > 0) {
        $this->errors->set_error('You either have a pending request from '.ucfirst($this->db->row()->username).' 
            or you have already requested their friendship!');
        return false;
    }
    

    【讨论】:

    • 致命错误:在第 351 行调用 H:\WD SmartWare.swstor\HALEY-HP\Source\DStable\dragon\models\user_model.php 中未定义的方法 CI_DB_mysql_driver::num_rows() 我做了在发布之前尝试一下!我想我应该把它包括在内。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多