将mysql查询转换为数组格式

vis*_*hnu 1 php mysql arrays

任何人都可以知道,将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数组.

Cha*_*les 7

因此,您需要从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.