是否可以将sql计数结果分配给php变量?

时间:2018-04-10 02:10:25

标签: php mysql

所以我在网上看到了如何找到一种方法将MySQL查询计数结果转换为整数,以便我将其指定为php变量,我找到了几个不同的链接,并阅读了多个文档。他们似乎都没有涵盖我想要的东西。例如:

//code for connecting to database
$query = "SELECT COUNT(*) FROM `user_table` WHERE `username` = 'John12'";
$result = mysql_query($query);
if(!$result) die($db->error);

现在运行查询后的代码应该返回1,如果username字段是唯一的,那么只有该查询结果的一个实例。另一个例子:

//code for connecting to database
$query = "SELECT COUNT(*) FROM `user_table` WHERE `username` = 'John12' AND `username` = 'Paula25'";
$result = mysql_query($query);
if(!$result) die($db->error);

现在运行查询后的代码应该返回2.我遇到的问题是将结果分配给php变量。它总是说无法将mysql_result转换为int。我也见过很多关于此的论坛,没有一个成功帮助过我。我在网上发现MariaDB为计数查询返回BIGINT类型。我希望能够做到这样的事情:

$count = $result->result;
if($count < 2) { 
  // do this if true
} else {
  // do this
}

2 个答案:

答案 0 :(得分:0)

您可以使用mysql_fetch_row

//code for connecting to database
$query = "SELECT COUNT(*) FROM `user_table` WHERE `username` = 'John12' OR `username` = 'Paula25'";
$result = mysql_query($query);
if(!$result) die($db->error);    

$row = mysql_fetch_row($result);

$count = $row[0];

if($count < 2) { 
  // do this if true
} else {
  // do this
}

正如@mith在评论中提到的,如果你刚开始你的项目,最好使用mysqli而不是mysql。阅读:MySQL vs MySQLi when using PHP

答案 1 :(得分:-1)

您必须使用 $ result [count()] 获取返回值,因为您正在选择列名作为计数()。

或者您可以使用

之类的别名

$ query =&#34; SELECT COUNT(*)AS count ...

然后

$ result = mysql_query($ query); $ result [&#39; count&#39;] =你的价值// 2

如果您不想使用别名

$ result [&#39; COUNT(*)&#39;] =您的值// 2

所以你必须在你的情况下做这样的事情

entity_id, dim1_pos, dim2_pos, dim3_pos, ..., dimN_pos

$ count = $ result [&#39; COUNT(*)&#39;];

if($result['COUNT(*)'] < 2) { 
  // do this if true
} else {
  // do this
}