gpt4 book ai didi

php - 如何使用 php 循环遍历 mysql 查询

转载 作者:行者123 更新时间:2023-11-29 01:08:20 25 4
gpt4 key购买 nike

我尝试使用这个功能

        $conn = db_connect();
while ($newsfeed = $conn->query("select info, username, time from newsfeed ORDER BY time DESC LIMIT 10"))
{
(...)
echo "<p>User $newsfeed_username just registerted ".$minutes." min ago </p><br>";

但它只会一遍又一遍地显示最新的行。我想遍历来自

的所有查询
select info, username, time from newsfeed ORDER BY time DESC LIMIT 10

降序排列。

最佳答案

这是此类事情的基本模板,使用内置的 php 函数(假设使用旧式 mysql,但类似地使用其他数据库后端或更高级别的库)。在这个例子中,错误是通过抛出异常来处理的,但这只是一种方法。

  1. 连接到数据库
  2. 确保连接成功
  3. 运行查询
  4. 确保查询不会因为某些原因(通常是 SQL 语法错误)而失败。如果确实失败了,找出原因并处理该错误
  5. 检查查询是否至少返回一行(零行通常是一种特殊情况)
  6. 遍历返回的行,做任何你需要做的事情。

需要定义异常类(它们是这里唯一的非内置语法,但您不应该抛出普通异常)。

示例代码:

<?PHP
//try to connect to your database.
$conn = mysql_connect(...);

//handle errors if connection failed.
if (! $conn){
throw new Db_Connect_Error(..);
}

// (try to) run your query.
$resultset = mysql_query('SELECT ...');

//handle errors if query failed. mysql_error() will give you some handy hints.
if (! $resultset){
// probably a syntax error in your SQL,
// but could be some other error
throw new Db_Query_Exception("DB Error: " . mysql_error());
}

//so now we know we have a valid resultset

//zero-length results are usually a a special case
if (mysql_num_rows($resultset) == 0){
//do something sensible, like tell the user no records match, etc....
}else{
// our query returned at least one result. loop over results and do stuff.
while($row = mysql_fetch_assoc($resultset)){
//do something with the contents of $row
}
}

关于php - 如何使用 php 循环遍历 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3137992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com