循环mysql结果集有哪些不同的方法?我是PHP和MySQL的新手,所以我正在寻找简单的循环方法,并解释所提供的代码是如何工作的。
答案 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)
答案 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等。