php - mysql_fetch_array 不会呈现 SQL 查询的期望值

标签 php mysql select mysqli

在 phpMyAdmin 界面中,我运行以下 SQL 查询:

SELECT id FROM table WHERE family = '1' AND type = 'B1'

并收到以下结果:

“1”、“18546269”、“51534064”是正确的。

然后我用 PHP 编写了以下代码:

$query = "SELECT id FROM table WHERE family = '1' AND type = 'B1'";
$result = mysql_query($query);
$array = mysql_fetch_array($result);
echo '(', implode(',',$array) ,')';

但收到以下结果: (1,1) 这是我没想到的。

我以为会显示(1,18546269,51534064)。 然后我编写了以下代码来验证应该显示的内容:

print_r ($array);

并且非常惊讶这些值为:

Array ( [0] => 1 [id] => 1 ).

最后我写道:

while($array = mysql_fetch_array($result)) {
        echo $array['id'],',';
}

正如预期的那样,收到了这个:

1,18546269,51534064,

我无法使用它,因为我需要一个完全相同的字符串:(1,18546269,51534064)。 事实上,我“只是”需要一个变量,它为我提供与在 phpMyAdmin 中运行的 SQL 查询相同的值。 我真的很困惑,如果你们中有人能帮助我,那就太好了。 使用 mysqli 的解决方案也将受到赞赏。 :-)

最佳答案

$query = "SELECT id FROM table WHERE family = '1' AND type = 'B1'";
$result = mysqli_query($link, $query);
$ids = '';
while($row = mysqli_fetch_array($result)) $ids .= $row['id'].',';

// Filter the text a bit
$ids = rtrim($string, ',');
$ids = '('.$ids.')';
echo $ids;

您基本上启动一个变量,将所有 id 放入其中,删除最后一个逗号,附加括号,就是这样。

关于php - mysql_fetch_array 不会呈现 SQL 查询的期望值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22874329/

相关文章:

javascript - Bootstrap 表单不会在点击时提交

php - 在 foreach 中对 mysql-select 中的数组进行排序

java - Bean 在 applicationContext 中,但 @Autowired 注释不起作用

mysql - 在这种情况下使用 int 而不是 bigint 有什么好处?

php - Mysql 连接两个表的 where 子句

php - symfony2 - 文件上传因表单错误而丢失

php - PHP解析/语法错误;以及如何解决它们

mysql - 将 MySQL 中的数组展平为单个对象的正确方法

c# - 如何检查选中了dataGridView中的哪个单元格?

java - 查找从一个表到另一个表的连接路径