gpt4 book ai didi

javascript - 如何从 MySQL 以键值对形式返回数据

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

我正在尝试返回一个带有键值对的 JSON 对象,它们在我的 MySQL 表中都是单独的列。

所以 MySQL 表看起来(简化了 1000%)是这样的:

+-----------------+---------------------+
| Email | ProfilePicture |
+-----------------+---------------------+
| john@email.com | https://someurl.com |
| jane@email.com | https://foobar.com |
| bobby@email.com | https://random.com |
+-----------------+---------------------+

我想要一个类似 JSON 的对象

{
"john@email.com":"https://someurl.com",
"jane@email.com":"https://foobar.com",
"bobby@email.com":"https://random.com"
}

我可以通过遍历表并将所有内容连接在一起,在 MySQL 中将其构建为字符串,然后在 JS 中解析它。我知道。但它看起来很乱,而且我知道在 PHP 中必须有一些内置函数。我只是不认识他们。

我所有其他的 PHP/MySQL 配对都在 PHP 中使用 mysqli_fetch_assoc 和 json_encode,因为它们不需要 JSON Key 来动态更改值。

最终的 JSON 对象是从 JavaScript 函数返回的,因此我很高兴能修复从 JavaScript(或 jQuery)到 PHP、MySQL Procedure 以及返回的链中的任何地方。

最佳答案

如果你使用PDO连接数据库,你可以使用类似...

$query = $db->query("SELECT Email, ProfilePicture FROM users");
$data = $query->fetchAll(PDO::FETCH_KEY_PAIR);
$out = json_encode($data);

PDO::FETCH_KEY_PAIR 使用返回的第一列作为键,第二列作为值。

坚持使用mysqli

$result = $db->query("SELECT Email, ProfilePicture FROM users");
$data = [];
while ($row = $result->fetch_assoc()) {
$data[$row['Email']] = $row['ProfilePicture'];
}
$out = json_encode($data);

MySQLi 版本 - 略短...

$result = $db->query("SELECT Email, ProfilePicture FROM users");
$data = $result->fetch_all(MYSQLI_ASSOC);
$out = array_column($data, 'ProfilePicture', 'Email');
$out = json_encode($data);

关于javascript - 如何从 MySQL 以键值对形式返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47845191/

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