【问题标题】:Using MySQLI to fetch a column and convert to array [duplicate]使用 MySQLI 获取列并转换为数组 [重复]
【发布时间】:2017-06-25 01:34:27
【问题描述】:

所以我一直在尝试各种其他线程,但似乎没有一个使用 MySQLI,也没有工作。 我正在尝试通过 MySQLI 查询 MySQL 表,将返回的列转换为稍后使用的数组。这是我目前所拥有的。

$sql = new mysqli("URL", "user", "pass","db") or die ("Not connected");
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit;
}
$sql_query = "SELECT Desired_column FROM Table_Name";
$result_array = $sql->query($sql_query);
while($row = $result_array->fetch_row()) {
    $rows[]=$row;
}
$result_array->close();
$sql->close();
return $rows;

是的...我完全是编码新手,所以 PHP 兽医,很高兴看到你已经走了多远!

我得到的错误是

在第 60 行调用 Boolean 上的成员函数 fetch_row()

【问题讨论】:

  • 什么是$result
  • ^ 如果不清楚。为什么$result 不是$result_array
  • 您的错误日志中一定有错误。寻找它,阅读它,然后修复代码
  • 好吧,你刚才的代码显示了一些不同的东西,我们只能解决我们所拥有的问题。
  • 如果你是一个完全的新手,我建议从 PDO 而不是 mysqli 开始。不过,基于此代码,您可能希望从基础开始,而不是跳入数据库代码。

标签: php mysql arrays mysqli


【解决方案1】:

试试这样的:

$query = "SELECT Desired_column FROM Table_Name";
$results = mysqli_query($sql, $query);

$rows = [];

while($row = mysqli_fetch_assoc($results)) {
    $rows[] = $row;
}

编辑 1

  • array_push($rows, $row); 更改为 $rows[] = $row; 以减少函数调用

【讨论】:

  • 仅供参考:stackoverflow.com/questions/14232766/…。最好使用$rows[] = $row 而不是array_push()。同样,mysqli_fetch_all() 可能是最直接的,当在循环中没有做任何花哨的事情时。
  • 这似乎奏效了!谢谢!
  • @nerdlyist 欢呼,我会相应地更新我的答案:)
  • @Spholt 也尝试描述您所做的更改。进来的人可能看不到它。
  • 我已经有了。
猜你喜欢
  • 2013-12-06
  • 1970-01-01
  • 1970-01-01
  • 2019-12-19
  • 2015-02-13
  • 1970-01-01
  • 1970-01-01
  • 2017-09-11
  • 2018-12-15
相关资源
最近更新 更多