PHP'nin yerleşik MySQLi sınıfının yeteneklerinden yararlanan bir sınıf oluşturdum ve veritabanı etkileşimini basitleştirmesi amaçlandı. Ancak, bir OOP yaklaşımı kullanarak, bir sorgu çalıştırıldıktan sonra doğru sayıda satır döndüren num_rows örnek değişkeniyle zor bir zaman yaşıyorum.PHP MySQLi num_rows Her Zaman Geri Dönüş 0
$db = new Database();
$result = $db->query("SELECT * FROM `pages`"); //Contains at least one entry
echo $result->num_rows; //Returns "0"
exit;
Nasıl olur bu doğru değildir: Burada
class Database {
//Connect to the database, all goes well ...
//Run a basic query on the database
public function query($query) {
//Run a query on the database an make sure is executed successfully
try {
//$this->connection->query uses MySQLi's built-in query method, not this one
if ($result = $this->connection->query($query, MYSQLI_USE_RESULT)) {
return $result;
} else {
$error = debug_backtrace();
throw new Exception(/* A long error message is thrown here */);
}
} catch (Exception $e) {
$this->connection->close();
die($e->getMessage());
}
}
//More methods, nothing of interest ...
}
örnek bir kullanımıdır ... benim sınıfın bir anlık bir göz atın? Sonuç nesnesindeki diğer değerler "field_count" gibi doğrudur. Herhangi bir yardım büyük beğeni topluyor.
Zaman ayırdığınız için teşekkür ederiz.
Gahh ait
Eşdeğer varsayılan bayrağı kullanmalıdır ... Çok kolaydı. Bunu işaret ettiğin için teşekkürler. Hem PHP sitesinin örneği hem de örnek sorgularım "MYSQLI_USE_RESULT" sabitini kullanıyordu. Bunu kaldırdım ve bir çekicilik gibi çalışır! Yardımın için teşekkürler, Phil! –
Sadece MYSQLI_USE_RESULT kullanımı için bir not: [** PHP mysql :: query **] (http://es1.php.net/manual/en/mysqli.query.php) _Eğer MYSQLI_USE_RESULT kullanırsanız, sonraki tüm aramalar return error [** mysqli_free_result() **] (http://es1.php.net/manual/en/mysqli-result.free.php) _ aramadıkça senkronizasyon dışı komutlar _ –