PHP PDO hazırlanan sorgu için döngü sonuçları döndürmez

1 Cevap php

Ben aşağıdaki kodu vardır:

$link = new PDO("mysql:dbname=$databasename;host=127.0.0.1",$username,$password);
$query = $link->prepare("SELECT * FROM index WHERE sbeid=:idvar");
for($j = 1; $j < count($array); $j++)
{
    if($array[$j][16] == "TRUE" || $array[$j][16] == "FALSE")
    {
        $paramforquery = $array[$j][25];
        $query->bindParam(":idvar",$paramforquery);
        $query->execute();
        $result = $query->fetchAll();
        //do things with the $result
        $query->closeCursor();
    }
    //else if, do stuff
}
$link = null;

$array başarıyla fopen() aracılığıyla yüklenen bir CSV dosyası girişi oluşan geniş bir dizidir.

Benim sorunum şu: Sorgu sadece çalışmıyor. Ben veri veritabanında olduğunu (dosyadan bazı örnek değerleri ile sunucu üzerinde doğrudan sorgu koştu) bir gerçeği biliyorum, ama ne zaman i var_dump $result s her zaman for döngü çalışır, ben sadece boş bir dizi olsun.

Ben yanlış ne yapıyorum?

TIA.

1 Cevap

Eğer bir bağlantı aldığınızdan emin misiniz?

try {
    $link = new PDO("mysql:dbname=$databasename;host=127.0.0.1",$username,$password);
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
}

Bu bağlanmaya çalışırken herhangi bir özel durumları yakalamak olacaktır. Bu ok çalışırsa, $ link sınırının altında sorgu koyarak denemek ve geri döndü ne olduğunu görmek.

Sorgu elle biterse, ben senin DB bağlantısı ile yapılacak olan bir şey söylemek istiyorum. Emin olun hata raporlama açık var ettik.

Additional: In your query you have this :idvar ? Shouldnt you be using a PHP variable like this $idvar.

bu yüzden

$query = $link->prepare("SELECT * FROM index WHERE sbeid=" . $idvar);