За последние 24 часа нас посетили 15733 программиста и 1664 робота. Сейчас ищут 844 программиста ...

Переход с mysql на mysqli

Тема в разделе "Прочие вопросы по PHP", создана пользователем wawelon, 9 авг 2014.

  1. wawelon

    wawelon Новичок

    С нами с:
    8 авг 2013
    Сообщения:
    3
    Симпатии:
    0
    Здравствуйте, у меня такая проблема, на mysql код такой
    Код (Text):
    1. $query = mysql_query("SELECT COUNT(user_id) FROM users WHERE user_login='".mysql_real_escape_string(md5(md5($login)))."'");
    2.     if(mysql_result($query, 0) > 0) {
    3.         $err[] = "Пользователь с таким логином уже существует в базе данных";
    теперь хочу переделать под mysqli и вот возникла проблема не могу перевести на mysqli ошибки всякие нечего непонимаю....

    вот код mysqli

    Код (Text):
    1. global $connect;
    2. $query = $connect->query("SELECT COUNT(`user_email`) FROM users WHERE user_email='".real_escape_string($email)."'");
    3. $query = $res->fetch_assoc();
    4. if ( $res[0] )
    5. {
    6.          echo "False";
    7. }
    что неправильно делаю?, ошибка Call to a member function query() on a non-object

    просто поменялось подключение к базе данных с mysql на mysqli
     
  2. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    $connect должен быть mysqli объектом, как тут объясняется php.net/manual/ru/mysqli.quickstart.dual-interface.php
    Сначала создается объект
    Код (Text):
    1. $connect = new mysqli("example.com", "user", "password", "database");
    , к функциям которого потом можно обращаться с помощью ->
     
  3. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    real_escape тоже из объекта вызывать надо

    не объект. видать подключиться не вышло.
     
  4. wawelon

    wawelon Новичок

    С нами с:
    8 авг 2013
    Сообщения:
    3
    Симпатии:
    0
    А вы можете написать код который будет рабочий, а то я что-то пробовал неполучается, я только изучаю PHP

    еше подключение к базе данных вот такое


    Код (Text):
    1. function connectDB() {
    2.     global $mysqli;
    3.     @$mysqli = new mysqli( DB_HOST, DB_USER, DB_PASSWORD, DB_DB );
    4.     @$mysqli->set_charset( 'utf8');
    5.     if ($mysqli->connect_error) {
    6.         die('
    7.         <div style="color:red; border:1px solid red; text-align:center; font-size:20px; width:100%; height:100%;">
    8.         <p>Ошибка соединения: '.date("H:i:s").'</p>
    9.         <p>Обратитесь к Администрации сайта для устранения ошибки</p>
    10.         </div>
    11.         ');
    12.     }
    13.     if ( !$mysqli->set_charset( 'utf8' )) {
    14.         echo'<div style="color:red; border:1px solid red; text-align:center; font-size:20px; width:100%; height:100%;">
    15.         Ошибка при загрузке набора символов utf8';
    16.     }
    17. }  
     
  5. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    Переходи, используя процедурный вариант mysqli. Он практически один-в-один с mysql, только dblink не забывай в mysqli_query вставить. Подробности найдешь в документации.
     
  6. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Да какая разница. Просто гденить опечаталсяи в базу не коннектит. Проверь всё еще раз.