MySQLi sonuçlarını Cilt ve birden fazla satır getiriliyor

1 Cevap php

Ben mysqli kullanarak sonuç kümesi üzerinde döngü çalışıyorum ve bind / getir.

static function getConnection() 
{
    if (!isset(self::$db_conn)) 
    {
        self::$db_conn = new mysqli(self::$DBSERVER,self::$DBUSER,self::$DBPASS, ModelBase::$DBNAME) or die(mysql_error(0)." Error handling database connection. ");
    }
    return self::$db_conn;
}

Yukarıdaki getConnection () fonksiyonudur. Bu sınıf devralan bir ModelBase sınıftadır.

$term = "%".$term."%";
$con = ModelBase::getConnection();
$sql = "SELECT name FROM cities WHERE name LIKE ? LIMIT ?";
$query = $con->prepare($sql) or die("Error preparing sql in City ".parent::$db_conn->error);
$query->bind_param("si", $term, $limit) or die("Error binding params in City ".parent::$db_conn->error);
$query->execute() or die("Error executing query in City");

$tmp = "";
$query->bind_result($tmp);
while($query->fetch());
{
    error_log($tmp);
    echo($tmp."\n");
}
$query->close();

Ancak, ben alıyorum bütün sadece bir kez son sonucudur ve. Orada daha sonra bir sonucu olabilir, ve ben phpMyAdmin veya bir isteminde aşağıdaki sorguyu kontrol ederken ben birden çok satır almalısınız.

SELECT name FROM cities WHERE name LIKE %d% LIMIT 150

Ben değiştirirseniz, bu sorun görünmüyor

$ Sorgu-> bind_result ($ tmp);

karşı

$ Sorgu-> bind_result (& $ tmp);

Sözdizimi yanlış başka bir şey mi?

Is there an easier way karşıdo this? Maybe a way karşıfetch the object?

1 Cevap

Sen ise-deyim sonunda noktalı virgül var:

while($query->fetch());

(Hangi tabii,) ($ sorgu-> fetch yapar her bir tur için süslü parantez arasındaki kod çalıştıran olmadan doğru değildir kadar değerlendirmek)