gpt4 book ai didi

php - 需要帮助返回数据库表中所有内容的数组 PHP/PDO

转载 作者:行者123 更新时间:2023-11-29 09:01:18 25 4
gpt4 key购买 nike

我想返回在数据库表中找到的所有内容的数组。该表只有 2 列:id 和 Song_url。我希望数组看起来像这样:

Array {
1 => songurl1,
2 => songurl2,
3 => songurl3
}

键是每行的id,值是每行的song_url。我为此使用 PDO。

谢谢。

编辑(没有看到编辑按钮:s):

这是我当前执行此操作的代码:

class Database {

protected $connected = false;
protected $dbh = null;
public $test = array();

function __construct($host=null, $user=null, $pass=null, $db=null) {
if ($host && $user && $pass && $db) {
try {
$this->dbh = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
$this->connected = true;
} catch (PDOException $e) {
echo "Could not connect to the database. Please contact an administrator.";
$this->connected = false;
exit();
}
} else {
echo "No or not all variables are passed to the constructer. Contact an administrator.";
$this->connected = false;
exit();
}
}

public function fetchAllSongs() {
$q = $this->dbh->query("SELECT * FROM song_directories");
$result = $q->fetch(PDO::FETCH_ASSOC);

return $result; // this returns an array, yes, but only 1 row

}

}

此外, fetchAllSongs 中的返回仅显示一行(当我使用 print_r() 时),而不是所有行。这是为什么?

最佳答案

查看 manual page for query 上的示例。在 foreach 循环中创建数组:

$data[$row['id']] = $row['songurl'];

不要对像这样简单的事情使用 2 个查询。

您编辑的代码非常接近。只需将 fetch 更改为 fetchAll,然后根据需要重新排列数组即可。

关于php - 需要帮助返回数据库表中所有内容的数组 PHP/PDO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8514594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com