我很难从数据库中的表中获取行,因为mysqli_num_rows
总是返回false。这是我的代码的摘录:
$query = "SELECT * FROM table1 WHERE user = '$user'";
if (mysqli_num_rows(mysqli_query($conn, $query)))
{
$row = mysqli_fetch_row($results);
echo $row[1]
}
我没有得到echo $row[1]
的结果。然后我将if
语句替换为另一个语句:
if (!mysqli_num_rows(mysqli_query($conn, $query)))
echo 'no rows!'
得到'没有行!'在浏览器上。
我已成功连接到数据库,其他查询工作正常。请,我想了解为什么mysqli_num_rows
将返回false,即使表中的行与查询匹配。
答案 0 :(得分:1)
应该是
$query = "SELECT * FROM table1 WHERE user = '$user'";
if (mysql_num_rows(mysql_query($query)) > 0){
$row = mysql_fetch_row($results);
echo $row[1];
}else{
echo 'user does not exist';
}
答案 1 :(得分:1)
$query = "SELECT * FROM table1 WHERE user = '$user'";
if (mysql_num_rows(queryMysql($query)))
{
$row = mysql_fetch_row($results);
echo $row[1]
}
尝试一步一步:
$Query = mysql_query($query);
$Results = mysql_num_rows($Query);
if ($Results === 0){
echo "No Results";
}else{
$row = mysql_fetch_row($query);
echo $row[1];
}
答案 2 :(得分:0)
如果有行,这应该是它的样子:
$query = "SELECT * FROM table1 WHERE user = '$user'";
if (mysql_num_rows(mysql_query($query)) != 0) {
$row = mysql_fetch_row($results);
echo $row[1]
}
如果没有行,它应该是这样的:
if (mysql_num_rows(mysql_query($query)) == 0) {
echo 'no rows!'
}
最好的方法就是这样:
$query = "SELECT * FROM table1 WHERE user = '$user'";
if (mysql_num_rows(mysql_query($query)) != 0) {
$row = mysql_fetch_row($results);
echo $row[1]
}else{
if (mysql_num_rows(mysql_query($query)) == 0) {
echo 'no rows!'
}}
答案 3 :(得分:0)
如果queryMysql方法是自定义的,则很可能它不返回资源(即它可能返回一个数组)。这个的标志是mysql_num_rows返回文字false
如果是这种情况,你可以在数组上使用count
。
如果mysql_num_rows
返回0
而不是false
,则表示查询确实没有返回任何行。