Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in. Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in

Страниц (1): [1]
 

1. Yul - 24 Апреля, 2018 - 14:17:40 - перейти к сообщению
<?php $comments = mysqli_query($connection, "SELECT * FROM `comments` WHERE `articles_id` = " . (int)$art['id'] . "ORDER BY `id` DESC");

if( mysqli_num_rows($comments) <= 0)
{

echo "Нет комментариев!";
}

while( $comment = mysqli_fetch_assoc($comments) )
{

?>
<article class="article">
<div class="article__image" style="background-image: url(https://www[dot]gravatar[dot]com/avatar/<?php echo md5($comment['email']);?>?s=125);"></div>
<div class="article__info">
<a href="/article.php?id=<?php echo $comment['articles_id']; ?>"><?php echo $comment['author']; ?></a>
<div class="article__info__meta"></div>

<div class="article__info__preview"><?php echo mb_substr(strip_tags($comment['text']), 0, 100, 'utf-8') . ' ... '; ?></div>
</div>
</article>
<?php
}
?>
2. Мелкий - 24 Апреля, 2018 - 14:48:14 - перейти к сообщению
mysqli_num_rows ждёт аргумент определённого типа. Вы передаёте bool. Откуда там bool? mysqli_query вернёт false в случае ошибки запроса.
Смотрим внимательнее - запрос содержит синтаксическую ошибку.

Если не видите синтаксическую ошибку запроса - выведите текст запроса с уже подставленным аргументом.

Проверяйте возврат функций, для mysqli и pdo можно включить автоматическую генерацию исключений при ошибке запроса, что сильно удобнее.
И вообще не подставляйте параметр напрямую в запрос, используйте prepared statements.

 

Powered by ExBB FM 1.0 RC1