php - 在 PHP 中循环执行 MySQL 查询

标签 php mysql sql

我有一些查询 MySQL 数据库的代码。我的问题是,如果只检查表的第一行。我知道我需要一个 for 循环,但我尝试过的不起作用。仅检查第一行的工作代码是

public function checkPart($aid, $uname) {
    $result = mysql_query("SELECT * FROM part WHERE aid = '$aid'") or die(mysql_error());
    // check for result 
    $no_of_rows = mysql_num_rows($result);

        if ($no_of_rows > 0) {
            $result = mysql_fetch_array($result);
            $aiddb = $result['aid'];
            $unamedb = $result['uname'];

            if ($unamedb == $uname) {
                // user authentication details are correct
                return $result;
            }
        } else {
            // user not found
            return mysql_error();
        }

}

我尝试的是这样的:

public function checkPart($aid, $uname) {
    $result = mysql_query("SELECT * FROM part WHERE aid = '$aid'") or die(mysql_error());
    // check for result 
    $no_of_rows = mysql_num_rows($result);
    for($x=1; $x<= $no_of_rows;$x++){
        if ($no_of_rows > 0) {
            $result = mysql_fetch_array($result);
            $aiddb = $result['aid'];
            $unamedb = $result['uname'];

            if ($unamedb == $uname) {
                // user authentication details are correct
                return $result;
            }
        } else {
            // user not found
            return mysql_error();
        }
    }
}

有人可以帮我纠正我的代码吗?我是初学者,如果问题太简单,请原谅我。

最佳答案

事实上的方法是使用 while 循环:

$no_of_rows = mysql_num_rows($result);
if ($no_of_rows == 0) {
    return mysql_error();
} else {
    while ($row = mysql_fetch_assoc($result)) {
        // ... use $row['aid'], $row['uname'], etc.
    }
}

您自己的代码可能可以工作,但您覆盖了$result:

$result = mysql_fetch_array($result);

因此,在循环一次迭代之后,您就丢失了查询结果。

注意:mysql_* 函数 are deprecated由于安全问题,建议您学习mysqli_*PDO

关于php - 在 PHP 中循环执行 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30359584/

相关文章:

c# - 传递 SQL Server 连接( Node 到 C#)

mysql - SQL:如何从表 `property` 返回两行数据?

mysql - mysql 上什么更快?每列处理还是通过索引?

php - 最佳实践数据库事务和在 PHP 中将文件存储到文件系统

PHP 5.4 与 5.3 : Autoloading multiple classes in the same file

php - 有效处理 'Big Data' 的技术(读取、写入、查询、聚合)

mysql - SQL - 将计算列添加到表 MOD (%) 函数

php - SQL 按价格/平方米排序

mysql - 运行 PDO mysql_num_rows 查询

mysql - 在 Scala 中,当进行巧妙的 sortBy 时,如何让它进行区分大小写的排序