有没有人知道把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数组。
发布于 2011-03-11 11:56:38
因此,您需要从MySQL中获取数据。使用PHP从MySQL获取数据的最好方法无疑是PDO,这是一种跨数据库访问接口。
所以,首先让我们连线。
// 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接口查询MySQL,并获得不少于四种类型的数组结果。在PDO中有很多其他很酷的事情,你只需要很少的努力就可以完成。只需遵循手册页面的链接,我特意不为您链接。
这个夸张的帖子是由字母T,F和W以及数字PHP_MAX_INT + 1
带给你的。
发布于 2011-03-11 11:37:46
我不明白你的意思,但是
mysql_fetch_array和mysql_fetch_assoc
两者都只返回数组
请参阅:
http://php.net/manual/en/function.mysql-fetch-array.php http://php.net/manual/en/function.mysql-fetch-assoc.php
发布于 2011-03-11 11:45:30
如果你只需要一个简单的数组...
while ($row = mysql_fetch_array($query)) { //you can assume rest of the code, right?
$result[$row['url_id']] = array($row['sumtime']);
}
https://stackoverflow.com/questions/5268519
复制相似问题