我有一个mysql查询,我试图从php运行。但它在codeigniter中给了我一个sql语法错误。当我复制粘贴相同的查询并通过用正确mysql workbench
的值替换@uid
and来运行它时,它工作正常。@rangee
这是查询:
$this->db->query("
SET @uid = ".mysqli_real_escape_string($conid,$userid).";
SET @rangee = ".mysqli_real_escape_string($conid,$attempt)." * 50;
PREPARE STMT FROM
'
UPDATE
notificationrecievers
SET notificationrecievers.status=1
WHERE notificationrecievers.status=0 and notificationrecievers.recieverid=? and
notificationrecievers.notificationid <=
(
SELECT MAX(notid) FROM
(
SELECT n.notid FROM user u,notifications n,notificationrecievers nr WHERE
nr.recieverid=? AND u.userid=n.senderid AND nr.notificationid=n.notid ORDER BY n.notid DESC
LIMIT 50 OFFSET ?
)e
)
AND
notificationrecievers.notificationid >=
(
SELECT min(notid) FROM
(
SELECT n.notid FROM user u,notifications n,notificationrecievers nr WHERE
nr.recieverid=? AND u.userid=n.senderid AND nr.notificationid=n.notid ORDER BY n.notid DESC
LIMIT 50 OFFSET ?
)g
);';
EXECUTE STMT USING @uid,@uid,@rangee,@uid,@rangee;");
为什么它给我错误?