php から実行しようとしている mysql クエリがありますが、codeigniter で sql 構文エラーが発生します。同じクエリをコピーして貼り付け、andを正しい値にmysql workbench
置き換えて実行すると、正常に動作します。@uid
@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;");
エラーが表示されるのはなぜですか?