好的,所以如果我将 sql_query 设置为变量,如下所示:
$query = mysql_query("..");
并像这样调用多个mysql_result:
mysql_result($query, 0);
mysql_result($query, 1);
mysql_result($query, 2);
页面将调用服务器多少次查询?只有一次?还是三倍?
当您执行mysql_query
时,它会执行 sql并将结果保存在内部结果结构中。下次调用时mysql_result
,它会从该内部结果中获取。
对于缓冲查询,一旦执行 mysql_query,结果就会从 MySQL 服务器复制到 PHP。对于未缓冲的查询,它将被懒惰地复制。
所以在这两种情况下Query 只执行一次。但是对于未缓冲的查询,它将从 MySQL 服务器中获取。每次你打电话mysql_result
或mysq_fetch_*
。缓冲和非缓冲查询
你自己已经给出了答案。如果你调用一次“查询”函数,那么无论你解析多少次它的返回值,它都只会执行一次
$query = mysql_query("..");
当您运行上述代码时,查询将被执行,并且返回的资源位于 $query 变量中。然后您可以多次从中获取数据,但查询不会再次运行。
这将是一个与数据库的查询,这意味着服务器。mysql_result() 不应与对处理结果集的其他函数的调用混在一起。
欲了解更多信息,您可以访问: http: //php.net/manual/en/function.mysql-result.php
只有 *mysql_query* 正在针对 mysql 服务器执行。只有一个查询
mysql_result 仅从 mysql 资源中获取数据,无论您之前是从代码中的查询中获取数据还是设法从其他来源获取数据都没有关系。
从 PHP 5.5.0 起,这个函数被弃用了;执行此操作的新方法是创建一个mysqli对象并使用函数mysqli::query和mysqli::fetch_field