好的,所以如果我像这样设置一个变量sql_query:
$query = mysql_query("..");
并调用多个mysql_result,如下所示:
mysql_result($query, 0);
mysql_result($query, 1);
mysql_result($query, 2);
页面调用服务器的查询数量是多少? 只有一次?或三次?
答案 0 :(得分:4)
执行mysql_query
时,执行sql ,并将结果保存在内部结果结构中。下次当您致电mysql_result
时,它会从该内部结果中获取。
对于缓冲查询,只要执行mysql_query,reusult就会从MySQL服务器复制到PHP。对于未缓冲的查询,它将被懒惰地复制。
因此在两种情况下查询只执行一次。但对于未缓冲的查询,它将从MySQL服务器获取。每次致电mysql_result
或mysq_fetch_*
。 Buffered and Unbuffered queries
答案 1 :(得分:0)
你自己给出了答案。如果您正在调用“查询”功能一次,那么它只会 无论你解析其返回值多少次都执行一次
$query = mysql_query("..");
运行上面的代码然后执行查询,返回的资源在$ query变量中。然后你可以多次从中获取数据,但查询不会再次运行。
答案 2 :(得分:0)
这将是一个带有数据库的查询,这意味着服务器。 mysql_result()不应与对处理结果集的其他函数的调用混在一起。
有关详细信息,请访问:http://php.net/manual/en/function.mysql-result.php
答案 3 :(得分:0)
只针对mysql服务器执行* mysql_query *。 只有一个查询
mysql_result只从mysql资源中获取数据,如果您以前从代码中的查询中获取数据或设法从其他来源获取数据,则无关紧要。
从PHP 5.5.0开始,不推荐使用此功能;执行此操作的新方法是创建 mysqli 对象并使用函数 mysqli :: query 和 mysqli :: fetch_field < / p>