[英]MySQL - CodeIgniter Fails to Interpolate Query Parameters
好的,我正在运行查询,而CodeIgniter给我这个错误:
错误号:1064
您的SQL语法有误; 检查与您的MySQL服务器版本相对应的手册以获取在第4行的''附近使用的正确语法
从friend_request中加入用户名来选择用户名user_id =朋友在哪里(朋友='8'并且发件人=
我确实意识到,它没有捕获发件人,但是$ 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;
}
我尝试将所有内容放在一行上,因为我不知道输入是否会破坏任何内容,但仍然无法解决任何问题。
出现错误是因为您应该在查询结果上而不是数据库上使用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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.