MySQL不会SELECT * FROM数据库

时间:2018-03-25 01:04:31

标签: php mysql

当我从数据库中选择全部时,它只返回一行。我已将其更改为select "column name" from database where "blank" = 1并将多行设置为“空白”= 1并且它仍然只返回一行。

这是我的代码:

<?php
    $link = mysqli_connect("host", "database", "password", "database");
    if (mysqli_connect_error()) {
        die("There was an error, Please try again");
    }
    $query = "SELECT * FROM `news`";
    $result = mysqli_query($link, $query); 
    $imageTest = mysqli_fetch_array($result);
?>

当我测试它并用

打印出数组时
<?php print_r($imageTest); ?>

它只返回一行(数据库中当前有3个测试行)

我知道我可能错过了一些非常小的东西。我从来没有真正开展过一个项目,我需要在列中选择多行项目。

我在同一个项目中使用了另一个数据库,我在其预期的功能中没有任何问题但是当我去那个并测试相同的东西时,它返回了相同的结果。

2 个答案:

答案 0 :(得分:2)

根据official documentationmysqli_fetch_array每次调用时都会从结果集中获取一行。转到以下代码来检索所有代码:

$rows = array();
$result = mysqli_query($link, $query);

while ($row = mysqli_fetch_array($result))
    $rows[] = $row;

print_r($rows);

答案 1 :(得分:-1)

mysqli_fetch_array从结果集中提取单行。

您要找的是mysqli_fetch_all(或while循环mysqli_fetch_array)。

我建议不要使用mysqli_*功能,建议使用PDO
请参阅以下资源,了解我持有此观点的原因:

mysqli or PDO - what are the pros and cons?
https://phpdelusions.net/pdo/mysqli_comparison