gpt4 book ai didi

PHP - mysql_fetch_assoc 函数

转载 作者:行者123 更新时间:2023-11-29 00:40:23 25 4
gpt4 key购买 nike

如果我在 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();
}

此功能在 3 种情况中的 2 种情况下效果很好:

1- 非常适合返回 1 行的查询,我可以这样访问:

$rs = 执行查询($sql);

$foo = $rs["用户 ID"];

2- 适用于不返回任何记录的 sql 语句,例如 UPDATE 或 DELETE。

3- 但是,当我尝试取回一个返回多条记录的记录集,然后循环遍历它时,我得到了一个无限循环并且我的浏览器崩溃了。像这样:

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

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

最佳答案

尝试 foreach($rs as $row){ 而不是 while ($row = $rs){

关于PHP - mysql_fetch_assoc 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12502568/

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