php - mysql语句中使用方括号构建数组

标签 php mysql arrays

我正在尝试让 mysql 返回将由 php 解析为数组的列名。考虑一下:

$sql = "SELECT user.id AS `user[id]`, user.name AS `user[name]`,
            user_info.address AS `user[info][address]`
            user_info.zip AS `user[info][zip]`
        FROM user JOIN user_info ON user.id = user_info.id";
$stmt = $conn->query($sql);
$results = $stmt->fetchAll();

我希望 $results 看起来像这样:

array(
    [0] => array(
        [id] => 2,
        [name] => 'john',
        [info] => array(
            [address] => '1234 Main st',
            [zip] => 12345
        )
    )
    [1] => array(
        [id] => 3,
        [name] => 'tom',
        [info] => array(
            [address] => '2811 Second Ave.',
            [zip] => 98765
        )
    )
)

有什么方法可以无需手动循环结果。我想要类似于 php 在表单提交中处理方括号的功能(例如 index.php?user[id]=2&user[name]=tom)

最佳答案

没有。 SQL 不能以这种方式工作,MySQL 库及其 PHP 绑定(bind)都不支持这种方式。如果您想拥有与此类似的东西,那么您将需要一个真正的面向对象的数据库及其 PHP 绑定(bind)。

关于php - mysql语句中使用方括号构建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13943675/

相关文章:

c++ - 巨大的静态数组与函数内的局部数组

c - 读取一串整数并用它们创建一个数组

mysql - 创建存储在元表中的报告值

c++ - 我该如何处理这种变化?

php - 共享主机上未加载 PDO 扩展

javascript - 如何在用户单击后退按钮或离开时执行功能。以及如何延迟它?

php - 在 PHP 7.4 中使用 FFI 加载库时出现问题

php - 为什么 strtolower 比 strtoupper 稍慢?

php - 如何使用 3 个或更多表执行 Propel 查询?

mysql - 列出以特定字母开头的 mysql 表