2009-11-27 74 views
3

我想執行一個查詢,並且它會返回一行或不返回。我不想使用mysql_fetch_array()。我還可以做些什麼?替代mysql_fetch_array()

+0

爲什麼不使用'mysql_fetch_array()'? – 2009-11-27 07:35:46

+0

我懷疑我需要使用雖然不必要。我想擺脫While循環。 – RKh 2009-11-27 07:40:16

+1

請嘗試使用PEAR :: MDB2數據庫抽象庫,而不是直接調用mysql函數調用。 – 2009-11-27 07:42:43

回答

4

替代mysql_fetch_array()

  1. mysql_fetch_object()
  2. mysql_fetch_assoc()
  3. mysql_fetch_row()

您不必使用while循環。使用mysql_num_rows()您可以檢查返回的行數。這適用於從mysql_query()調用返回的結果集。

$res = mysql_query('select 0'); 
if (mysql_num_rows($res)) { 
    $data = mysql_fetch_array($res); 
} 
2

你可以寫一個函數來爲你做。

function get_one_row($query) { 
$result = mysql_query($query); 
$row = mysql_fetch_array($result); 
return($row); 
} 

或者你是否試圖完全避免mysql_fetch_array?

3

如果你只有一個(或零)行拉。

$result = mysql_query(/* ... */); 
$row = mysql_fetch_array($result); 
mysql_free_result($result); 

如果有一行,$row會擁有它。如果不是 - $row將是false。無需while()


如果你只是想知道你有多少行

$count = mysql_num_rows($result); 
+0

我明白了。好的,有什麼方法可以確定數組中的行數嗎?像row_count一樣。 – RKh 2009-11-27 07:45:36

+2

mysql_num_rows() – 2009-11-27 07:46:54