За последние 24 часа нас посетили 66484 программиста и 1615 роботов. Сейчас ищет 1121 программист ...

Ошибка Warning: mysql_close() expects parameter 1 to be resource

Тема в разделе "PHP для новичков", создана пользователем tmpnik, 6 дек 2016.

  1. tmpnik

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

    С нами с:
    21 мар 2011
    Сообщения:
    50
    Симпатии:
    0
    Непонятно почему ошибка, ожидается параметр 1, смотрел мануал, везде эта функция идёт без параметра, попробовал mysqli_close(), ошибка та же. Я понмаю, что может она тоже устарела, но может кто-нибудь подскажет в чём проблема.
    PHP:
    1. $server = "localhost";
    2. $database = "bd_";
    3. $username = "user";
    4. $password = "1";
    5.  
    6. $connect = mysql_connect($server,$username,$password) or die ( mysql_error() );
    7. if(!$connect) exit(mysql_error());
    8. else {echo nl2br("Connect есть!"."\n");}
    9. if (!mysql_select_db($database)) exit(mysql_error());
    10. else{echo nl2br("Установлен селект на базу"."\n");}
    11.  
    12. if(mysqli_close($database)) // разрываем соединение
    13. {
    14.   echo("Соединение с базой данных прекращено");
    15. }
    16. else
    17. {
    18.   echo("Не удалось завершить соединение");
    19. }
    20. ?>
     
    #1 tmpnik, 6 дек 2016
    Последнее редактирование модератором: 6 дек 2016
  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    ты из разных библиотек используешь функции, заметил там i ?
     
  3. tmpnik

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

    С нами с:
    21 мар 2011
    Сообщения:
    50
    Симпатии:
    0
    это был последний вариант, который скопипастил, вначале вместо mysqli_close было написано mysql_close выходила ошибка, переписал на mysqli_close, ошибка та же, следовательно не в библиотеке дело
     
  4. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    покажи код и полный текст ошибки, в ней можно будет прочитать на какой строке она произошла и посмотреть в коде эту строку, потом почитать текст ошибки и подумать из-за чего она произошла
    --- Добавлено ---
    ты по какой литературе изучаешь PHP?
     
  5. tmpnik

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

    С нами с:
    21 мар 2011
    Сообщения:
    50
    Симпатии:
    0
    Программа
    PHP:
    1. <?php
    2. $server = "localhost";
    3. $database = "bd";
    4. $username = "user";
    5. $password = "1";
    6.  
    7. $connect = mysql_connect($server,$username,$password) or die ( mysql_error() );
    8. if(!$connect) exit(mysql_error());
    9. else {echo nl2br("Connect есть!"."\n");}
    10. if (!mysql_select_db($database)) exit(mysql_error());
    11. else{echo nl2br("Установлен селект на базу"."\n");}
    12.  
    13. mysql_close($database);
    14.  
    15. mysqli_close($database);
    16.  
    17. ?>
    Результат
    Снимок.PNG

    Спасибо.
     
    #5 tmpnik, 7 дек 2016
    Последнее редактирование модератором: 7 дек 2016
  6. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    вот 13 строка, на ней происходит первая ошибка:
    ты что-то отправил в функцию mysql_close первым аргументом $database, что у тебя в $database,?
    Потом посмотри документацию по mysql_close и скажи, она что-то ждёт в первом аргументе, если да, то что?
     
    tmpnik нравится это.
  7. tmpnik

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

    С нами с:
    21 мар 2011
    Сообщения:
    50
    Симпатии:
    0
    Программа вся под спойлером, $database = "bd", вместо этой переменной подставил напрямую значение
    mysql_close('bd'); ошибка не исчезла.
     
  8. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @tmpnik просто ответь на два вопроса которые я задал в предыдущем сообщении
     
  9. tmpnik

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

    С нами с:
    21 мар 2011
    Сообщения:
    50
    Симпатии:
    0
    1. В функцию mysql_close() ничего не передавал.
    2. Хелп смотрел
    [​IMG]
     
  10. HeavyLady

    HeavyLady Новичок

    С нами с:
    7 дек 2016
    Сообщения:
    11
    Симпатии:
    4
    А то, что ты туда $database передаёшь, это что, не аргумент (параметр)? Аргумент. Вот у тебя в ошибке и написано что происходит. Она ожидала, что ты передашь resource, а ты передаёшь ей строку, ведь переменная $database - просто строка с названием базы, а нужно передать подключение. Вот и получается, что ты не соединение закрываешь, а просто название базы. Передай другую переменную, она у тебя там есть.
     
    denis01 и tmpnik нравится это.
  11. tmpnik

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

    С нами с:
    21 мар 2011
    Сообщения:
    50
    Симпатии:
    0
    Большое спасибо, действительно, вместо бд, подставил соединение и всё получилось.
     
  12. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    [​IMG]
     
    denis01 нравится это.
  13. denis01

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

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