考虑这个SQL查询
$sql = "select count(*) as count from table where value='this'";
此查询将仅返回字段count
中的一个值。
有没有办法在不使用fetch_array
的情况下获取该值并指向返回数组的第一个值?
答案 0 :(得分:2)
mysql_result()
将允许您直接从结果集中提取值,而无需使用 fetch 方法。这是一个非常简单的示例,说明如何使用它来获取单个值:
mysql_select_db( "mysql", mysql_connect( "localhost", "root", "" ) );
$r = mysql_query( "SELECT count(name) as total FROM `help_keyword`" );
echo $r ? mysql_result( $r, 0 ) : mysql_error() ; // Outputs 450
mysql_result()
函数有三个参数;第一个是结果集本身,第二个是行索引,第三个是字段索引。我只使用前两个参数,因为第三个参数默认为0,第一个字段返回。
答案 1 :(得分:1)
作为一个sql初学者,我也浪费了很多时间来尝试直接使用sql查询的这些一维结果。我认为既然结果不是数组,我可以跳过这些带有fetch_arrays的while循环。
然而,只是现在我才意识到虽然结果可能是8的整数值,但只要你不将它转换为它的值,它仍然被认为只是一个'查询结果'而不是整数。
Jonathan的代码帮助我意识到了这一点。对于我自己,我使用了一个稍微不同的代码来帮助我。这对我有用:
$con=mysql_connect("host", "user", "password");
if(!$con)
{die('could not connect: '.mysql_error());
}
$db_selected=mysql_select_db("database", $con);
$sql = "the sql query that yiels one value, for example a SELECT COUNT query";
$outcome_considered_as_a_query-result-set = mysql_query($sql,$con);
$outcome_considered_as_the_one_element_of_the_result_set = mysql_result($outcome_considered_as_a_query-result-set,0);
echo $outcome_considered_as_the_one_element_of_the_result_set;
mysql_close($con);
答案 2 :(得分:0)