Php 向SELECT的LIMIT子句添加参数
我准备了以下声明:Php 向SELECT的LIMIT子句添加参数,php,mysql,prepared-statement,Php,Mysql,Prepared Statement,我准备了以下声明: $sql = "PREPARE stmt_name FROM 'SELECT I.item_id, I.name , I.price, I.discounted_price, I.thumbnail_photo FROM item I JOIN sub_category SC ON I.sub_category_id = SC.sub_category_id JOIN category C ON C.category
$sql =
"PREPARE stmt_name FROM
'SELECT I.item_id, I.name , I.price, I.discounted_price, I.thumbnail_photo
FROM item I
JOIN sub_category SC
ON I.sub_category_id = SC.sub_category_id
JOIN category C
ON C.category_id = SC.category_id
WHERE C.category_id = ?
LIMIT ?,? ' ;
SET @p1 = categoryId;
SET @p2 = firstItem;
SET @p3 = items_per_page;
EXECUTE stmt_name USING @p1,@p2,@p3; "
我将其更改为以下内容(不使用准备好的语句)
我想向LIMIT子句添加参数
我浏览了一些网站,似乎只有使用准备好的语句才能在select语句的LIMIT子句中添加参数。我能听听你的意见和建议吗
谢谢
我想将参数添加到限制
我浏览了一些网站,
而且,似乎向
select语句中的LIMIT子句
只能使用准备好的
声明
所以加上限制。为什么准备好的声明只允许限制?这是一个SQL构造而不是PHP构造。看起来您正在使用连接而不是参数来构建新的SELECT查询。如果您想继续沿着这条路走下去,只需在代码中附加以下内容:
. ' LIMIT ' . (int)$start . ', ' . (int)$number;
如果希望使用参数化查询,则需要使用PHP的内置或扩展,或者选择支持参数化查询的抽象层,例如。参数化查询通常被认为比简单地通过字符串连接构建查询更安全、更简洁。您不必使用准备好的语句来使用limit。只要加上限制。。。 比如说
$sql='SELECT I.item_id, I.name , I.price, I.discounted_price, I.thumbnail_photo
FROM item I
JOIN sub_category SC
ON I.sub_category_id = SC.sub_category_id
JOIN category C
ON C.category_id = SC.category_id
WHERE C.category_id =' . (int)$categoryId.' LIMIT '.(int)$start.','.(int)$limit;
只是好奇,为什么不使用PDO?你不需要手工准备语句,我不知道如何使用PDO。你能给我发个链接吗?
$sql='SELECT I.item_id, I.name , I.price, I.discounted_price, I.thumbnail_photo
FROM item I
JOIN sub_category SC
ON I.sub_category_id = SC.sub_category_id
JOIN category C
ON C.category_id = SC.category_id
WHERE C.category_id =' . (int)$categoryId.' LIMIT '.(int)$start.','.(int)$limit;