如何遍历mysql结果集

时间:2009-11-18 15:23:17

标签: php database mysql

循环mysql结果集有哪些不同的方法?我是PHP和MySQL的新手,所以我正在寻找简单的循环方法,并解释所提供的代码是如何工作的。

6 个答案:

答案 0 :(得分:17)

我想到的第一个例子:

    <?php

    $link = mysql_connect(/*arguments here*/);

    $query = sprintf("select * from table");

    $result = mysql_query($query, $link);

    if ($result) {
      while($row = mysql_fetch_array($result)) {
        // do something with the $row
      }

    }
    else {
      echo mysql_error();
    }
?>

答案 1 :(得分:7)

以下是一个完整的例子:

http://php.net/manual/en/mysqli-result.fetch-array.php

  1. 连接
  2. 选择数据库
  3. 进行查询
  4. 循环结果并获取数组以获取行

答案 2 :(得分:5)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * FROM table";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
?>
//Loop Content... Example:-

**<li><?php echo $row[name]; ?></li>**

<?php
}};
?>

答案 3 :(得分:4)

  

如果您使用的是MySQL版本4.1.3或更高版本it is strongly recommended,则使用 mysqli 扩展名而不是 mysql 扩展名开发,不支持MySQL 4.1+的功能,没有编写和多个语句,没有面向对象的接口,...]

请参阅mysqli-stmt.fetch了解循环mysqli结果集的过程和面向对象的方法。

答案 4 :(得分:2)

在现代 php 中,您不需要调用任何函数来获取结果集的数据。结果集对象是立即可迭代的,foreach() 将允许您遍历数据,就好像它是关联数组的索引数组。 (Since PHP5.4.0, circa March 1, 2012 - "MySQLi: Added iterator support in MySQLi. mysqli_result implements Traversable.")

示例:

foreach ($conn->query("SELECT one, two, three FROM my_table") as $index => $row) {
    echo "<div>$index: {$row['one']}, {$row['two']}, {$row['three']}</div>";
}

答案 5 :(得分:1)

我建议创建一个数据库函数,作为数据库提取的包装器。使得更容易切换数据库函数调用,甚至是数据库本身的类型(例如mysql-&gt; postgresql或mysql-&gt; couchdb或使用PDO对象等)。

一些函数 - 你创建了一个查询并返回一个完全关联的数组,然后你将数据库连接代码粘贴在那里。

使用PDO进行检查也许会很好,因为它会为你提取数据库特定功能,使用mysql,postgresql等。