php - 在单个 PHP 脚本中使用 mysql_fetch_assoc 两次

标签 php mysql

我通常会尽可能减少对 MySQL 的调用,但我终于遇到了必须在单个脚本中多次调用 MySQL 的情况。

看起来你不能在一个脚本中使用mysql_fetch_assoc两次(!)。

似乎 mysql_data_seek 是解决方案,但我似乎无法让它工作。

需要明确的是,我有两个问题需要询问。第二个查询取决于第一个查询的结果...结构如下:

$result = mysql_query($query1);

while($row = mysql_fetch_assoc($result)){
 $pos = $row['position'];
}

mysql_free_result($result); // result freed per comment below. 

$query2 = ' '; //... dependent on $pos - in mysql shell this returns results! 
$result2 = mysql_query($query2) 

while($row = mysql_fetch_assoc($result2)){

 echo $row['id'];

}

上面发生的情况是,即使查询应该有重要的行,第二个 while 循环也不会返回任何结果。

<小时/>

只是为了确定: 这是清除先前结果中的指针以便能够再次使用 mysql_fetch_assoc 的方法吗?

mysql_data_seek($结果,mysql_num_rows($结果) - 1);

我不确定使用什么作为第二个参数。诚然,我对指针不太清楚,但似乎我应该将指针清除为 0。但我收到此错误:

偏移量0对于MySQL结果索引8无效(或者查询数据未缓冲

最佳答案

检查您与 mysql_error() 的连接,看看是否出现“命令不同步”错误。如果是这样,您需要在完成第一个查询后、开始第二个查询之前调用 mysql_free_result()。您也可以只调用 mysql_close() 来关闭数据库连接,然后重新打开一个新连接。

更多详情,请参阅 this question

关于php - 在单个 PHP 脚本中使用 mysql_fetch_assoc 两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9913366/

相关文章:

php - 使用 URL 到 API Rest 的日期过滤器 - Codeigniter

java - 弱类型、自动装箱、扩大转换之间有什么区别?

php - Composer : "Warning: You should avoid overwriting already defined auth settings" after changing authentication settings?

php - 需要在 mysql 表内弹出窗口

php - PDO 查询未显示结果

PHP 代码 : Trying to link to a MYSQL table

mysql - 缓慢删除mysql中的多条记录

mysql - 如何合并 4 个 mysql 表中的数据

php - 如何回显 SQL 表中的所有内容?

php - 密码系统不执行任何操作