gpt4 book ai didi

php - 将mysql查询转换为数组格式

转载 作者:行者123 更新时间:2023-11-29 03:53:19 24 4
gpt4 key购买 nike

谁能知道将 mysql 查询转换为 php 数组:

这是 mysql 查询:

SELECT SUM(time_spent) AS sumtime, title, url 
FROM library
WHERE delete_status = 0
GROUP BY url_id
ORDER BY sumtime DESC

我想将此查询转换为简单的 php 数组。

最佳答案

因此,您需要从 MySQL 中获取数据。毫无疑问,使用 PHP 从 MySQL 获取数据的最佳方法是 PDO ,跨数据库访问接口(interface)。

所以,首先让我们连接。

// Let's make sure that any errors cause an Exception.
// <http://www.php.net/manual/en/pdo.error-handling.php>
PDO::setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// We need some credentials...
$user = 'username';
$pass = 'password';
$host = 'hostname';
$dbname = 'database';
// PDO wants a "data source name," made up of those credentials.
// <http://www.php.net/manual/en/ref.pdo-mysql.connection.php>
$dsn = "mysql:host={$host};dbname={$dbname}";
$pdo = new PDO($dsn, $user, $pass);

好了,我们已经连接了。假设 $sql 具有您在问题中提供的 SQL。让我们运行 SQL:

$statement = $pdo->prepare($sql);
$statement->execute();

在那里,它已经被执行了。让我们谈谈结果。您坚决拒绝告诉我们您希望如何构建数据结构,因此让我们了解四种获取数据的方法。

我们首先假设查询返回一行。如果您想要一个数字索引数组,您可以这样做:

// <http://www.php.net/manual/en/pdostatement.fetch.php>
$array = $statement->fetch(PDO::FETCH_NUM);
unset($statement);

如果您想要一个以列名作为键的关联数组,您可以这样做:

    $array = $statement->fetch(PDO::FETCH_ASSOC);
unset($statement);

现在,如果查询返回多条记录怎么办?如果我们想要数字索引数组中的每一行,每一行都是一个关联数组,我们会这样做:

// <http://www.php.net/manual/en/pdostatement.fetchall.php>
$array = $statement->fetchAll(PDO::FETCH_ASSOC);
unset($statement);

如果我们希望每一行都作为数字索引数组怎么办?你能猜到吗?

    $array = $statement->fetchAll(PDO::FETCH_NUM);
unset($statement);

多田。您现在知道如何使用现代 PDO 接口(interface)查询 MySQL 并获得不少于四种类型数组的结果。您可以在 PDO 中轻松完成许多其他很酷的事情。只需点击指向手册页的链接,我特意没有为您链接。

这篇 Over-the-top 帖子是由字母 T、F 和 W 以及数字 PHP_MAX_INT + 1 提供给您的。

关于php - 将mysql查询转换为数组格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5268519/

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