Bir SELECT yan tümcesi SINIR parametreleri ekleme

3 Cevap php

Ben şu hazırlanmış deyimi vardır:

$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; "

i (hazırlanmış deyimi kullanarak wihtout) aşağıdakilere değiştirdi

$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;

I want to add parameters to the LIMIT clause Ive gone through some sites, and it seems that adding parameters to the LIMIT clause in a select statement can be done only by using prepared statements. Can I have your opinions and suggestions please?

Teşekkürler!

3 Cevap

Eğer yeni bir SELECT sorgusu oluşturmak için değil, parametrelerin daha bitiştirmesi kullanılarak konum gibi görünüyor. Bu yolda devam etmek istiyorsanız, sadece kodu eklemek istiyorum:

. ' LIMIT ' . (int)$start . ', ' . (int)$number;

Parametreli sorgu kullanılan tercih ederseniz, kullanmak gerekir PHP'nin PDO veya mysqli uzantıları yerleşik, ya da gibi parametreli sorgular için desteği ile bir soyutlama katmanı seçin ADOdb. Parametreli sorgular genellikle sadece dize birleştirme sorguları bina daha güvenli ve temiz olarak görülmektedir.

I want to add parameters to the LIMIT clause Ive gone through some sites, and it seems that adding parameters to the LIMIT clause in a select statement can be done only by using prepared statements.

Yani SINIR eklemeniz. Neden hazır deyim sadece SINIRLARI izin verecek? Onun SQL yapı değil, bir PHP yapı.

You don't have to use prepared statements to use limit. just add Limit... for example

$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;

http://dev.mysql.com/doc/refman/5.1/en/select.html