PHP7/mysqli Подключение к БД

Тема в разделе "Общие вопросы", создана пользователем Jess23, 5 янв 2017.

  1. Jess23

    Jess23 Пользователь

    Сообщения:
    119
    Симпатии:
    14
    Привет всем.

    При переходе на php7 столкнулся с проблемой Fatal error: Uncaught Error: Call to undefined function mysql_connect()... При переносе в одном из модулей возникли проблемы, а именно не могу подключиться к БД. Так как в современных версиях оригинальное расширение MySQL (на котором раньше работал модуль) не поддерживается есть рекомендация использовать MySQLi (что я и исравил внутри файла)... Но он так и не работает с php7, что нужно поправить чтобы заработало?

    Исходный файл:
    PHP:
    <?php
    include('config.php');
    $link mysqli_connect(DB_HOSTNAME,DB_USERNAME,DB_PASSWORD);
    if (!
    $link) {
      die(
    'Could not connect: ' mysqli_error());
    }
    mysqli_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'"$link);

    if (!
    mysqli_select_db(DB_DATABASE)) {
      echo 
    "Unable to select mydbname: " mysqli_error();
      exit;
    }

    if(isset(
    $_REQUEST['q']) && $_REQUEST['q']!=''){
          
       
    $q mysqli_real_escape_string($_REQUEST['q']);
     
       
    $lan mysqli_real_escape_string($_REQUEST['lan']);
     
       
    $sql "select language_id from " DB_PREFIX "language where code = '".$lan."'";
       
    $res mysqli_query($sql);
       
    $row mysqli_fetch_array($res);
     
       
    $id $row['language_id'];
     
       if(!isset(
    $id)){ $id 1; }
     
       
    $sql "SELECT pd.name FROM " DB_PREFIX "product p," DB_PREFIX "product_description pd WHERE p.status = 1 AND p.product_id = pd.product_id AND language_id = '".$id."' AND UPPER(pd.name) like UPPER('%$q%') GROUP BY pd.product_id ORDER BY pd.name ASC";
       
    $res mysqli_query($sql);
       if(
    mysqli_num_rows($res)>0){
           while(
    $ro mysqli_fetch_assoc($res)){
              
               
    $name str_replace( array( '\'''"'',' ';''<''>','&quot','&'), ' '$ro['name']);
           
    //$str[]= $name."\n";
          
    echo $name."\n";
           }
       }   
       
    //echo json_encode($str);
    }

    ?>
     
    Последнее редактирование: 5 янв 2017
  2. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    э.. м...
    А вы пробовали поменять в config.php DB_DRIVER
     
  3. Jess23

    Jess23 Пользователь

    Сообщения:
    119
    Симпатии:
    14
    Да все изменено
     
  4. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Выбросить это модуль
     
  5. Jess23

    Jess23 Пользователь

    Сообщения:
    119
    Симпатии:
    14
    Ну да, я не спорю как вариант... Но можно же просто найти разбирающего человека в php 7 и он скажет что не так в данном файле и что стоит переписать иным образом...
     
  6. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685