任何人都可以知道,将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
Run Code Online (Sandbox Code Playgroud)
我想将此查询转换为简单的php数组.
因此,您需要从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);
Run Code Online (Sandbox Code Playgroud)
在那里,我们已经连接.让我们假装$sql你在问题中提供了SQL.我们来运行SQL:
$statement = $pdo->prepare($sql);
$statement->execute();
Run Code Online (Sandbox Code Playgroud)
在那里,它被执行了.我们来谈谈结果.您坚决拒绝告诉我们您希望如何构建数据,所以让我们通过四种方式来获取您的数据.
我们首先假设查询返回一行.如果你想要一个数字索引的数组,你会这样做:
// <http://www.php.net/manual/en/pdostatement.fetch.php>
$array = $statement->fetch(PDO::FETCH_NUM);
unset($statement);
Run Code Online (Sandbox Code Playgroud)
如果您想要一个以列名作为键的关联数组,您可以这样做:
$array = $statement->fetch(PDO::FETCH_ASSOC);
unset($statement);
Run Code Online (Sandbox Code Playgroud)
现在,如果查询返回多个记录怎么办?如果我们想要一个数字索引数组中的每一行,每行作为一个关联数组,我们会这样做:
// <http://www.php.net/manual/en/pdostatement.fetchall.php>
$array = $statement->fetchAll(PDO::FETCH_ASSOC);
unset($statement);
Run Code Online (Sandbox Code Playgroud)
如果我们希望每一行都是数字索引数组呢?猜一下?
$array = $statement->fetchAll(PDO::FETCH_NUM);
unset($statement);
Run Code Online (Sandbox Code Playgroud)
田田.您现在知道如何使用现代PDO接口查询MySQL,并将结果视为不少于四种类型的数组.你可以用极少的努力在PDO中完成大量其他很酷的事情.只需点击手册页面的链接,我有意无需为您链接.
这个过分的帖子已经通过字母T,F和W以及数字提供给您PHP_MAX_INT + 1.
| 归档时间: |
|
| 查看次数: |
8643 次 |
| 最近记录: |