繁体   English   中英

为什么尝试从此代码中获取数据会出错?

[英]Why am getting error trying to fetch data on from this code?

它说它的行有一个错误,例如mysqli_num_rows()期望参数1为mysqli_result ,它指向这一行$resultCheck = mysqli_num_rows($result);

我的代码是:

<?php

$sql = "SELECT FROM videos ORDER BY video_id ASC LIMIT 2,1;";
$result = mysqli_query($con, $sql);
$resultCheck = mysqli_num_rows($result);

if (mysqli_num_rows($result) > 0) {
    while ($row = mysqli_fetch_assoc($result)) { ?>
<li class="jp-playlist-current"><div><a href="javascript:;" class="jp- 
playlist-item-remove" style="display: none;">×</a><a href="javascript:;" 
class="jp-playlist-item jp-playlist-current" tabindex="0">1. <?php echo 
$row['video_name']; ?> <span class="jp-artist">by <?php echo 
$row['video_artist']; ?></span></a></div></li>

<?php   }

} else {
    echo "there are no songs!";
}

?>

mysqli_num_rows()函数需要一个mysqli_result对象作为其参数。

如果查询中有任何错误并且没有返回mysqli_result对象,则失败。 如果存在语法错误或查询中使用了错误的表名-字段名,则查询可能会失败,并且重要的一点是数据库连接处于活动状态。

您需要全部检查。

如果数据库连接正常,已完成并且之前已检查过,则您不需要以下代码:

<?php
$con = mysqli_connect("{DB_HOST}", "{db_user}","{db_password}","{db_name}");
if (mysqli_connect_errno()) die("DB Connect Error: " . mysqli_connect_error());
?>

然后,在尝试从查询中获取结果之前,请检查查询是否也成功(如果查询失败,mysqli_query()函数将返回false)。

<?php
$result = mysqli_query($con, "SELECT * FROM videos ORDER BY video_id ASC LIMIT 2,1");
if (!$result) die('Error on the query...');
$resultCheck = mysqli_num_rows($result);

if ($resultCheck) {
    while ($row = mysqli_fetch_assoc($result)) { ?>
...<?php echo $row['video_name']; ?>...
...<?php echo $row['video_artist']; ?>...
<?php   }

} else {
    echo "there are no songs!";
}
?>

更换:

$sql = "SELECT FROM videos ORDER BY video_id ASC LIMIT 2,1;"; // ';' in the end is wrong

与:

$sql = "SELECT * FROM videos ORDER BY video_id ASC LIMIT 2,1";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM