gpt4 book ai didi

php - 调用 mysql 过程的 php 函数的怪异

转载 作者:太空宇宙 更新时间:2023-11-03 12:19:41 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows etc... expects parameter 1 to be resource

(31 个回答)


8年前关闭。




好的,我正在重写我的问题以更清楚。请参阅以下代码:

//direct call to the proc. this works
$query = sprintf("CALL GetScores(%d);",$GameID );

print("<br/>call # 1<br/>");
$result = mysql_query($query, $_DB_link);
print_r(mysql_fetch_assoc($result ));


print("<br/>call # 2<br/>");
$result = mysql_query($query, $_DB_link);
print_r(mysql_fetch_assoc($result ));

请注意,我在对 mysql_query 的两次调用中都使用了完全相同的查询字符串。第一个返回良好的结果。但是第二个失败了。 PHP 不允许对同一个过程进行两次调用吗?或者mysql不允许对同一个proc进行2次调用?似乎不太可能..有人知道这里可能发生什么吗?为什么 mysql_query 第二次失败?

上述代码的输出是:

call # 1

Array ( [name] => Dratikus [score] => 123 )

call # 2

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /home/geekytec/public_html/test3.php on line 60

最佳答案

每次获取结果时,都会更改结果指针。这对于所有使用内部结果指针的函数都是正常的。您如何知道函数何时使用内部指针?文档会告诉你。对文档所说的内容感到困惑?在互联网上搜索这些术语。

mysql_fetch_assoc:

Returns an associative array that corresponds to the fetched row and moves the internal data pointer ahead.



http://www.php.net/mysql_fetch_assoc

这可能会有所帮助:
How to go through mysql result twice?

编辑:

我错过了您再次执行查询的行。在每次调用之前在其中抛出一个 print_r($_DB_link) 。该错误意味着您的资源现在是错误的,而不是连接句柄。由于某种原因,您可能会失去连接。

关于php - 调用 mysql 过程的 php 函数的怪异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20671966/

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