Mysql_query şey iade olmadığını denetleme

5 Cevap php
$query = "SELECT * FROM `table`";
$results = mysql_query($query, $connection);

'Tablo' satır varsa. nedir bu kontrol etmek için en kolay yolu.?

5 Cevap

Sen mysql_num_rows($results) 0 satır geri kontrol edin, ya da bu daha hızlı bir alternatif kullanmak için kullanabilirsiniz:

$query = "SELECT COUNT(*) AS total FROM table";
$results = mysql_query($query, $connection);
$values = mysql_fetch_assoc($results);
$num_rows = $values['total'];

Yukarıda Jeremy Ruten cevabı iyi ve hızlı bir şekilde yürütür; Öte yandan, bu size sadece satır ve başka bir şey sayısını (eğer sonuç veri istiyorsanız, veritabanını yeniden sorgulamak zorunda) verir. Ben ne kullanın:

// only ask for the columns that interest you (SELECT * can slow down the query)
$query = "SELECT some_column, some_other_column, yet_another_column FROM `table`";
$results = mysql_query($query, $connection);
$numResults = mysql_num_rows($results);
if ($numResults > 0) {
   // there are some results, retrieve them normally (e.g. with mysql_fetch_assoc())
} else {
   // no data from query, react accordingly
}

Mysql_Fetch_Assoc sonucu yanlış ise Alternatif olarak, sadece kontrol edebilirsiniz.

print("code sample");

$query = "SELECT * FROM `table`";
$results = mysql_query($query, $connection);
$Row = mysql_fetch_assoc($results);
if ($Row == false)
{
  $Msg = 'Table is empty';
}

Ben bu cevapsız fark bir şey sorgu başarılı olmayabilir gerçeği oldu, bu yüzden $ sonuç değişkeni ayarlanmış olup olmadığını kontrol etmek gerekir. Ben örnek olarak yjerem tarafından verilen cevap kullanacağız.

$query = "SELECT COUNT(*) AS total FROM table";
$results = mysql_query($query, $connection);
if ($results) { // or use isset($results)
$values = mysql_fetch_assoc($results);
$num_rows = $values['total'];
}

Sonuçlar aracılığıyla döngü, bir sayaç var ve bu kontrol edebilirsiniz.

$x = 1;
$query = mysql_query("SELECT * FROM table");
while($row = mysql_fetch_assoc($query))
{
  $x++;
}
if($x == 1)
{
  //No rows
}