SORU
16 ŞUBAT 2010, Salı


Nasıl LİMİT bindValue?

İşte benim kod bir anlık:

$fetchPictures = $PDO->prepare("SELECT * 
    FROM pictures 
    WHERE album = :albumId 
    ORDER BY id ASC 
    LIMIT :skip, :max");

$fetchPictures->bindValue(':albumId', $_GET['albumid'], PDO::PARAM_INT);

if(isset($_GET['skip'])) {
    $fetchPictures->bindValue(':skip', trim($_GET['skip']), PDO::PARAM_INT);    
} else {
    $fetchPictures->bindValue(':skip', 0, PDO::PARAM_INT);  
}

$fetchPictures->bindValue(':max', $max, PDO::PARAM_INT);
$fetchPictures->execute() or die(print_r($fetchPictures->errorInfo()));
$pictures = $fetchPictures->fetchAll(PDO::FETCH_ASSOC);

Anladım

SQL sözdizimi bir hata var; onay gelir için Kullanım Kılavuzu sunucu sürümü için MySQL doğru sözdizimi için kullan"', 15' 15 yakın 1 satır

PDO SQL kod SINIRI bölümünde benim değişkenleri tek tırnak ekleyerek gibi görünüyor. İlgili olduğunu düşündüğüm bu hata buldum baktım: http://bugs.php.net/bug.php?id=44639

Neye bakıyorum? Bu hata, Nisan 2008'den bu yana açıldı! Bu arada ne yapmamız gerekiyor?

Bazı veya köprü inşa etmek istiyorum, ve veri temiz olduğundan emin olun sql deyimi göndermeden önce enjeksiyon-güvenli, sql gerekiyor.

CEVAP
16 ŞUBAT 2010, Salı


Daha önce bu sorunu hatırlıyorum. Bağlama işlevine geçirmeden önce bir tamsayı değeri döküm. Bu çözer sanırım.

$fetchPictures->bindValue(':skip', (int) trim($_GET['skip']), PDO::PARAM_INT);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 1881 Animation

    1881 Animati

    5 EKİM 2013
  • Gimpology.com Video Tutorials

    Gimpology.co

    3 ŞUBAT 2008
  • KarnasCamillo

    KarnasCamill

    24 EKİM 2007