我试图从sql查询的结果中获取行数,所以我首先连接到数据库,然后检查连接是否建立,最后我尝试计算行数,这是代码:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "db_test";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$res = $conn->query('SELECT COUNT (id_offre) AS nb FROM offres');
$data = $res->fetch();
$nb = $data['nb'];
echo $nb;
?>
我得到这些错误:
未捕获的错误:在布尔值上调用成员函数fetch()
在布尔值上调用成员函数fetch()
我使用echo检查'nb'值,这是什么问题?
答案 0 :(得分:2)
您的查询失败,这使$conn->query()
返回false
。
那么,为什么查询失败?
SQL不允许在函数名和括号之间使用空格,就像在COUNT ()
中那样。
因此,如果您进行更改:
SELECT COUNT (id_offre) AS nb FROM offres
到
SELECT COUNT(id_offre) AS nb FROM offres
...应该可以。
注意:我强烈建议您阅读mysqli::error()
,并在代码中添加一些错误处理。
答案 1 :(得分:-1)
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "db_test";
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (! $conn) {
die("Connection failed: " . mysqli_connect_error());
}
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: ".$conn - > connect_error);
}
$res = $conn->query('SELECT * FROM offres');
$data_count = mysqli_num_rows($res);
echo($data_count);
?>
检查一下!