我试图从一个表中检索数组此代码有什么问题?

$_fbexclude = mysql_query("SELECT fbempfang FROM fbinvite WHERE fbreturn = '1' ");
$fbexcludearray= mysql_fetch_array($_fbexclude);

// Convert the array
$excludes = implode(',', $fbexcludearray);

echo $excludes;它只给了我以下的回答:1000033xxx161,1000033xxx161两倍相同的fEmpfang

最佳答案

看看以下内容是否满足了您的要求(已修复):

$_fbexclude = mysql_query("SELECT fbempfang FROM fbinvite WHERE fbreturn = '1'");
$fbexcludearray = array();
while ($row = mysql_fetch_assoc($_fbexclude)) {
  $fbexcludearray[] = $row['fbempfang'];
}

// Convert the array
$excludes = implode(',', $fbexcludearray);

mysql_fetch_array()它的同级(_assoc_row)一次只能检索一行。这意味着您的原始代码将只给您返回的第一行-为了解决这个问题,我们使用您在上面看到的循环。
两次看到相同数据的原因是mysql_fetch_array()返回一个混合索引和关联数组,其中包含两次以上的所有数据。因此,最好使用mysql_fetch_assoc()mysql_fetch_row(),因为您很少同时需要这两种格式。
事实上,使用mysqli更好,但同样的信息也适用于此。

关于php - MySQL查询和内爆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8866617/

10-13 00:05