首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将mysql查询转换为数组格式

将mysql查询转换为数组格式
EN

Stack Overflow用户
提问于 2011-03-11 11:02:38
回答 5查看 9.7K关注 0票数 1

有没有人知道把mysql查询转换成php数组:

这是mysql查询:

代码语言:javascript
运行
复制
SELECT SUM(time_spent) AS sumtime, title, url 
FROM library 
WHERE delete_status = 0 
GROUP BY url_id 
ORDER BY sumtime DESC

我想把这个查询转换成简单的php数组。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-03-11 11:56:38

因此,您需要从MySQL中获取数据。使用PHP从MySQL获取数据的最好方法无疑是PDO,这是一种跨数据库访问接口。

所以,首先让我们连线。

代码语言:javascript
运行
复制
// 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:

代码语言:javascript
运行
复制
$statement = $pdo->prepare($sql);
$statement->execute();

好了,它已经被执行了。让我们来讨论一下结果。您一直拒绝告诉我们您希望如何组织您的数据,所以让我们通过四种方法来获取您的数据。

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

代码语言:javascript
运行
复制
// <http://www.php.net/manual/en/pdostatement.fetch.php>
    $array = $statement->fetch(PDO::FETCH_NUM);
    unset($statement);

如果您希望使用列名作为键的关联数组,则可以执行以下操作:

代码语言:javascript
运行
复制
    $array = $statement->fetch(PDO::FETCH_ASSOC);
    unset($statement);

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

代码语言:javascript
运行
复制
// <http://www.php.net/manual/en/pdostatement.fetchall.php>
    $array = $statement->fetchAll(PDO::FETCH_ASSOC);
    unset($statement);

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

代码语言:javascript
运行
复制
    $array = $statement->fetchAll(PDO::FETCH_NUM);
    unset($statement);

塔达。您现在知道了如何使用现代的PDO接口查询MySQL,并获得不少于四种类型的数组结果。在PDO中有很多其他很酷的事情,你只需要很少的努力就可以完成。只需遵循手册页面的链接,我特意不为您链接。

这个夸张的帖子是由字母T,F和W以及数字PHP_MAX_INT + 1带给你的。

票数 7
EN

Stack Overflow用户

发布于 2011-03-11 11:37:46

我不明白你的意思,但是

mysql_fetch_arraymysql_fetch_assoc

两者都只返回数组

请参阅:

http://php.net/manual/en/function.mysql-fetch-array.php http://php.net/manual/en/function.mysql-fetch-assoc.php

票数 2
EN

Stack Overflow用户

发布于 2011-03-11 11:45:30

如果你只需要一个简单的数组...

代码语言:javascript
运行
复制
while ($row = mysql_fetch_array($query)) { //you can assume rest of the code, right?
    $result[$row['url_id']] = array($row['sumtime']);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5268519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档