【问题标题】:Mysqli, SELECT FROM, phpMysqli,从选择,PHP
【发布时间】:2016-08-12 13:43:05
【问题描述】:

我正在尝试从数据库中做一个简单的 SELECT username FROM users

$sql = "SELECT username
FROM users";

$select_sql = mysqli_query($conn, $sql);
$parse_sql = mysqli_fetch_array($select_sql);
var_dump($parse_sql);

但它给我这个 var_dump 同时有多个条目。

array(2) { [0]=> string(0) "" ["username"]=> string(0) "" }

像这样的其他查询工作正常

$sql = "SELECT username, password FROM users WHERE username ='$user'";
$select_sql = mysqli_query($conn, $sql);

我找不到问题所在

【问题讨论】:

  • 你需要使用循环
  • 查询中的表名不同
  • db_user 表中有一行 username 是一个空字符串。这是您的查询返回的第一行。
  • 请考虑使用PDO而不是mysqli,以后你会感谢我的
  • @Barmar 谢谢你,就这样,但其他人不应该出现吗?

标签: php mysqli


【解决方案1】:

使用while循环获取db_user中的所有用户

$sql = "SELECT username
FROM db_user";

$select_sql = mysqli_query($conn, $sql);
while($parse_sql = mysqli_fetch_assoc($select_sql))
{
  $usernames[] = $parse_sql
}

var_dump($usernames);

【讨论】:

  • 我会使用它,但是 foreach 呢?
  • 您必须使用 while 因为它一次获取一行,如果没有行则返回 false。因此循环结束。而 foreach 遍历数组的每个值
【解决方案2】:

mysqli_fetch_array 仅从结果集中获取一行。

考虑使用mysqli_fetch_all 来获取所有结果。

另外,最好只通过 give 将结果用作关联数组

mysqli_fetch_all($select_sql, MYSQLI_ASSOC);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 2023-03-04
    相关资源
    最近更新 更多