PHP-mysql_fetch_assoc的函数

PHP-mysql_fetch_assoc的函数,php,mysql,Php,Mysql,如果我在PHP中执行此操作,它可以正常工作并按预期循环: $rs = mysql_query($sql); while ($row = mysql_fetch_assoc($rs)){ writeme("UserID: " . $row["UserID"]); } 但我一直想把它抽象成一个我称为ExecuteQuery的函数: function ExecuteQuery($sql){ $result = mysql_query($sql); if ($result) { if

如果我在PHP中执行此操作,它可以正常工作并按预期循环:

$rs = mysql_query($sql);
while ($row = mysql_fetch_assoc($rs)){
    writeme("UserID: " . $row["UserID"]);
}
但我一直想把它抽象成一个我称为ExecuteQuery的函数:

function ExecuteQuery($sql){
$result = mysql_query($sql);

if ($result) {
    if($result != 1){
        return mysql_fetch_assoc($result); // return recordset
    }
}else{
    $message  = 'Invalid query: ' . mysql_error() . "<br>";
    $message .= 'Whole query: ' . $sql;
    echo $message;
    die();
}

如何修改while循环,使其前进到记录集中的每个新记录,并在最后一个记录之后停止?我确信这是一件愚蠢的小事,但我还不是PHP专家。我真的希望我的ExecuteQuery函数能够处理所有3种情况,它非常方便。

尝试
foreach($rs as$row){
而不是
而($row=$rs){
尝试
foreach($rs as$row){
而不是
而($row=$rs){
不要使用while,使用foreach:

$rs = ExecuteQuery($sql);
foreach ($rs as $row){
    writeme("UserID: " . $row["UserID"]);
}

不要使用while,使用foreach:

$rs = ExecuteQuery($sql);
foreach ($rs as $row){
    writeme("UserID: " . $row["UserID"]);
}
mysql\u fetch\u assoc()只返回结果的一行。要获取下一行,需要再次调用mysql\u fetch\u assoc()。可以做的一件事是让ExecuteQuery函数返回数组:

$rows = array();
while ($row = mysql_fetch_assoc($result) !== false) {
   $rows[] = $row;
}
return $rows;
此外,您不应该使用mysql_*函数,因为它们已被弃用。请尝试改用PDO或mysqli_*函数。

mysql_fetch_assoc()只返回结果的一行。要获取下一行,您需要再次调用mysql_fetch_assoc()。您可以让ExecuteQuery函数返回数组:

$rows = array();
while ($row = mysql_fetch_assoc($result) !== false) {
   $rows[] = $row;
}
return $rows;

此外,您不应该使用mysql_*函数,因为它们已被弃用。请尝试改用PDO或mysqli_*函数。

这不会获取下一行。它只会在一行结果中迭代列值。为什么它不获取下一行,这就是foreach所做的,在整个数组中循环。我认为您有参数backard、 我发现:警告:为foreach()提供的参数无效(
$rs
作为结果集。
foreach($rs作为$row){writeme(“UserID:”.$row[“UserID”]);}
不起作用?好的,看起来原始帖子已被编辑。它以前是foreach($row作为$rs)。新的(编辑)way排序是可行的,但它迭代的次数太多了,我认为它实际上是在循环每个字符串的每个字符或一些奇怪的东西。这不会获取下一行。它只是在一行结果中迭代列值。它为什么不获取下一行,这就是foreach所做的,循环整个数组。我认为是y您将参数向后设置。我得到以下信息:警告:为foreach()提供的参数无效(
$rs
作为结果集。
foreach($rs as$row){writeme(“UserID:”.$row[“UserID”]);}
无效?好的,看起来原始帖子已编辑。它以前是foreach($row as$rs)。新的(编辑)这是一种工作方式,但它重复了太多次,我认为它实际上循环了每个字符串的每个字符或一些奇怪的东西。我以为你找到了一些东西,但现在我的循环器运行了大约20次,当时只有2条记录。我想它循环了每个字符串中的每个字符。我以为你找到了一些东西,但现在我的循环当只有2条记录时,r大约运行了20次。我认为它正在循环每个字符串中的每个字符。还没有看到一个好的解决方案…仍然希望。我提供的解决方案是否有效?还没有看到一个好的解决方案…仍然希望。我提供的解决方案是否有效?