所以我在网上看到了如何找到一种方法将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
}
答案 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
}