2013-01-23 52 views
1

好了,如果我设置成变量的sql_query像这样:这种情况下有多少SQL查询(PHP)?

$query = mysql_query(".."); 

和调用多个mysql_result的,像这样:

mysql_result($query, 0); 
mysql_result($query, 1); 
mysql_result($query, 2); 

多少疑问将在页面调用服务器? 只有一次?或三次?

回答

4

当您执行mysql_query,它执行sql并将结果保留在内部结果结构中。下次您拨打mysql_result时,会从内部结果中提取。

对于缓冲查询,执行mysql_query后,reusult将从MySQL服务器复制到PHP。对于未缓冲的查询,它会被懒惰地复制。

因此,在这两种情况下,查询只执行一次。但对于未缓冲的查询,它将从MySQL服务器获取。每次您拨打mysql_resultmysq_fetch_*Buffered and Unbuffered queries

0

你自己给出了答案。如果要调用“查询”功能一次,然后它只会 执行一次无论当你运行上面的代码,然后查询被执行和返回的资源是多少次,你分析它的返回值

$query = mysql_query(".."); 

$查询变量。然后,您可以多次从中获取数据,但查询不会再次运行。

0

这里将是一个查询与数据库,这意味着服务器。不应该将mysql_result()与对处理结果集的其他函数的调用混合。

欲了解更多信息,您可以访问:

0

只有* *的mysql_query对被MySQL服务器执行。 只有一个查询

mysql_result只从MySQL资源中提取数据,如果您以前从代码中的查询中获取它或者设法从其他来源获取它,则无关紧要。

从PHP 5.5.0起,此功能已弃用;执行此操作的新方法是创建一个的mysqli对象,并使用过的功能的mysqli ::查询的mysqli :: fetch_field