好了,如果我设置成变量的sql_query像这样:这种情况下有多少SQL查询(PHP)?
$query = mysql_query("..");
和调用多个mysql_result的,像这样:
mysql_result($query, 0);
mysql_result($query, 1);
mysql_result($query, 2);
多少疑问将在页面调用服务器? 只有一次?或三次?
好了,如果我设置成变量的sql_query像这样:这种情况下有多少SQL查询(PHP)?
$query = mysql_query("..");
和调用多个mysql_result的,像这样:
mysql_result($query, 0);
mysql_result($query, 1);
mysql_result($query, 2);
多少疑问将在页面调用服务器? 只有一次?或三次?
当您执行mysql_query
,它执行sql并将结果保留在内部结果结构中。下次您拨打mysql_result
时,会从内部结果中提取。
对于缓冲查询,执行mysql_query后,reusult将从MySQL服务器复制到PHP。对于未缓冲的查询,它会被懒惰地复制。
因此,在这两种情况下,查询只执行一次。但对于未缓冲的查询,它将从MySQL服务器获取。每次您拨打mysql_result
或mysq_fetch_*
。 Buffered and Unbuffered queries
你自己给出了答案。如果要调用“查询”功能一次,然后它只会 执行一次无论当你运行上面的代码,然后查询被执行和返回的资源是多少次,你分析它的返回值
$query = mysql_query("..");
$查询变量。然后,您可以多次从中获取数据,但查询不会再次运行。
这里将是一个查询与数据库,这意味着服务器。不应该将mysql_result()与对处理结果集的其他函数的调用混合。
欲了解更多信息,您可以访问:
只有* *的mysql_query对被MySQL服务器执行。 只有一个查询
mysql_result只从MySQL资源中提取数据,如果您以前从代码中的查询中获取它或者设法从其他来源获取它,则无关紧要。
从PHP 5.5.0起,此功能已弃用;执行此操作的新方法是创建一个的mysqli对象,并使用过的功能的mysqli ::查询和的mysqli :: fetch_field