2009-11-27 72 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