За последние 24 часа нас посетили 30618 программистов и 1809 роботов. Сейчас ищут 882 программиста ...

из за чего выводится ошибка boolean given?

Тема в разделе "PHP для новичков", создана пользователем riaron, 13 апр 2015.

  1. riaron

    riaron Активный пользователь

    С нами с:
    1 окт 2014
    Сообщения:
    247
    Симпатии:
    4
    код1(см выделен коментарием) в отдельном файле выводит $atb=1.А в данном коде пишет ошибку ниже, в чем может быть ошибка?
    А в коде ниже
    Код (PHP):
    1. if(isset($addtocat)){//Начало кода 1
    2.   $tmp = $_FILES['imagef']['tmp_name'];
    3.   $name = $_FILES['imagef']['name'];
    4.   $link=mysqli_connect("localhost", "root", "password", "shopdvd");
    5.   $query = "SELECT count(1) FROM sdvd_products where img=$name limit 0,1";
    6.   $atbarr=mysqli_query($link,$query);
    7.   $atbnarr=mysqli_fetch_array($atbarr);
    8.   $atb=$atbnarr[0];//конец кода 1
    9.   if($atb==1){
    10.     $atberr="A file with the given name exists";
    11.   }else{
    12.     move_uploaded_file($tmp, '../imgs/'.$name);
    13.     addtocat($name, $tit, $description, $price,$scid);
    14.   }
    15. }
    Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\OpenServer\domains\mysite.local\admin\add2cat.php on line 36
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    mysqli_fetch_array по документации принимает первый аргумент, он должен быть mysqli_result, а ты передал boolean. https://php.net/manual/ru/language.types.php

    Это из-за того что ты забыл проверить что вернула mysqli_query, она может вернуть FALSE при ошибке, а это тип boolean
     
  3. riaron

    riaron Активный пользователь

    С нами с:
    1 окт 2014
    Сообщения:
    247
    Симпатии:
    4
    почему в иссете нельзя обратится к базе данных?
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    riaron я не понял вопроса
     
  5. riaron

    riaron Активный пользователь

    С нами с:
    1 окт 2014
    Сообщения:
    247
    Симпатии:
    4
    Проверял mysqli_query, вне isset-a он работает,а внутри выдает ошибку. Там нет причин из-за чего mysqli_query выдавал бы ошибку.
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Можно строчку кода, которая ошибку выдает?
     
  7. riaron

    riaron Активный пользователь

    С нами с:
    1 окт 2014
    Сообщения:
    247
    Симпатии:
    4
    Код (PHP):
    1. $atbnarr=mysqli_fetch_array($atbarr);
     
  8. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.599
    Симпатии:
    1.764
    в запросе ошибка. Строковые данные должны быть заключены в кавычки
     
  9. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Приведите пример строчки кода, выдающей, блин, ошибку :)
     
  10. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    автор, я просто научу тебя искать ответы — в гугле в строке запроса набираешь:
    site:php.ru "boolean given" - пробелы и кавычки имеют значение.

    не обязательно еще и тебе задавать тот же самый вопрос и выслушивать раздраженных старожилов.
     
  11. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    А еще есть внутренний поиск по сайту, который даже подсвечивает найденные совпадения, расрас.
     
  12. riaron

    riaron Активный пользователь

    С нами с:
    1 окт 2014
    Сообщения:
    247
    Симпатии:
    4
    ошибку нашел. надо было $name через mysqli_real_escape_string пропустить
     
  13. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    надо ли говорить, что гугль справляется немного лучше, чем phpbb ))) я прям удивлен как оперативно гугль индексирует посты, находятся совсем свежие. видимо таинственный Администратор прописал в качестве карты RSS.
     
  14. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    пинг)
     
  15. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Если бы форум слал гуглпинг после каждого поста, гугл бы давно выпнул форум в сопли. Пинг это круто, но злоупотреблять им не стоит.