За последние 24 часа нас посетили 20239 программистов и 1081 робот. Сейчас ищут 714 программистов ...

Как оторватся от ошибки.

Тема в разделе "PHP для новичков", создана пользователем Byba, 1 авг 2019.

  1. Byba

    Byba Новичок

    С нами с:
    8 май 2019
    Сообщения:
    28
    Симпатии:
    0
    Здравствуйте всем. Помогите оторваться от ошибки - переписываю сайт с mysql на mysqli и повсюду примерно одна и та же ошибка ,,mysqli ожидает параметр 1, заданный ... и т.д. ,, И сейчас сижу с утра и то же опять -
    Код (Text):
    1. $ru = mysqli_query ("SELECT * FROM pols_board") or die(mysqli_error());
    2. $rru = mysqli_fetch_array($ru);
    3. date_default_timezone_set($rru['timezone']);
    Пишет сразу две ошибки - 1) Warning: mysqli_query() expects at least 2 parameters, 1 given in... 2) Warning: mysqli_error() expects exactly 1 parameter, 0 given in.... Переписываю на новый лад -
    Код (Text):
    1. $res = $mysqli->query("SELECT id FROM pols_board");
    2. $rru = mysqli_fetch_array($ru);
    3. date_default_timezone_set($rru['timezone']);
    Пишет ошибку - Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in.... Где золотая середина ???
     
  2. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
  3. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    В первом случае (процедурный MySQLi) соединение должно быть первым параметром query.

    Во втором случае куда делась проверка результата выполнения запроса? Параметром fetch должна быть $res.

    @_ne_scaju_, @Byba, ООП- и процедурный синтаксисы MySQLi лучше не смешивать в одном контексте.
     
    #3 miketomlin, 1 авг 2019
    Последнее редактирование: 1 авг 2019
  4. Artur_hopf

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

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    PHP:
    1.  if ($ru = $mysqli->query("SELECT * FROM pols_board")){
    2.  
    3.        $rru = $ru->fetch_array();
    4.  
    5. }else{
    6.         printf("Сообщение ошибки: %s\n", $mysqli->error);
    7. }
     
  5. yanuzay

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

    С нами с:
    28 мар 2018
    Сообщения:
    497
    Симпатии:
    57
    во втором случае у тебя видимо ошибка в sql запросе.
    может у тебя нет поля pols_board , а есть поле polls_board ?
     
  6. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    [QUOTE="miketomlin, post: 605137,]
    @_ne_scaju_, @Byba, ООП- и процедурный синтаксисы MySQLi лучше не смешивать в одном контексте.[/QUOTE]
    Я лишь показал где ошибка.
     
  7. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    @_ne_scaju_, принимается, только ты еще это пропустил:
    --- Добавлено ---
    P.S. Это типичная причина ошибки
    --- Добавлено ---
    Хотя null там, конечно, скорее всего из-за описки, на кот. ты указал.
     
    _ne_scaju_ нравится это.
  8. Byba

    Byba Новичок

    С нами с:
    8 май 2019
    Сообщения:
    28
    Симпатии:
    0
    Спасибо за подсказки, подошел вот такой вариант
    Код (Text):
    1. $res = mysqli_query($link,"SELECT * FROM `pols_board`");
    2. if($res) {
    3.     while($row = mysqli_fetch_assoc($res)) {
    4.         print_r($row);
    5.     }
    А таблица есть `pols_board` , но в таком варианте выводит все с Дампа данных таблицы списком в верху монитора.
    Наверное надо указать кодировку и timezone ? А как это сделать в MySQLi ?
     
  9. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    Что выводишь, то и выводится.

    И что если !$res, а?
     
  10. yanuzay

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

    С нами с:
    28 мар 2018
    Сообщения:
    497
    Симпатии:
    57
    сорри. не уловил логической связи между двумя этими предложениями
     
  11. Byba

    Byba Новичок

    С нами с:
    8 май 2019
    Сообщения:
    28
    Симпатии:
    0
    Если сайт с расширением MySQL работает все замечательно, а вот переписать под MySQLi , я думаю - бесполезно, никогда до ума не доведёшь. Интересно , вот реально кто ни будь этим занимался ? Что б до конца да с положительным результатом ?
     
  12. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    На процедурный MySQLi не оч. сложно перевести. Когда-то занимался. MySQLi уже сто лет рулит.

    В след. раз попробуйте использовать обертки для ф-ций для работы с БД.
     
  13. Byba

    Byba Новичок

    С нами с:
    8 май 2019
    Сообщения:
    28
    Симпатии:
    0
    Я начал на ооп, но попробую на процедурный. Я тут немного начинаю понимать почему у меня выводит текстом таблицу pols_board . Есть ошибки в других файлах влияющие на это.
    Код (Text):
    1. if(intval($_GET['pols'])==1) echo 'checked';
    2. if(intval($_GET['pols'])==2)echo 'checked';
    И пишет ошибку не определенный индекс pols (Notice: Undefined index: pols in...) Вот как зти строчки поставить на MySQLi ? Если еще кто читает подскажите пожалуйста.
     
  14. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    Я тебе уже писал в др. теме, что это не относится к переходу на MySQLi. Видать, сайт не просто древний, а еще криво написан.
     
  15. Byba

    Byba Новичок

    С нами с:
    8 май 2019
    Сообщения:
    28
    Симпатии:
    0
    Да давно начинал, потом пять лет не было времени, сейчас решил закончить (хотя в MySQL почти готов) заодно поменять расширение. Это радио кнопка, но как то ж она пишется по новому. Сам роюсь в интернете, ищу.