За последние 24 часа нас посетили 21995 программистов и 1007 роботов. Сейчас ищут 502 программиста ...

Помогите перейти на на php 7.x

Тема в разделе "PHP и базы данных", создана пользователем Андрей_Php, 4 июл 2019.

  1. Андрей_Php

    Андрей_Php Новичок

    С нами с:
    18 дек 2017
    Сообщения:
    20
    Симпатии:
    0
    Помогите перейти на php 7.x.
    Денюжку заплачу.
    Конфиг

    PHP:
    1. <?php
    2. $config = array(
    3.   'base' => 'localhost',
    4.   'server' => 'localhost',
    5.   'user' => '',
    6.   'pass' => '',
    7.   'db' => '',
    8.   'run' => 1,
    9. );
    10. define('SESSION_BROWSER_SIGN_SECRET',  '@w434253254s9');
    11. function getBrowserSign(){
    12.     $rawSign = SESSION_BROWSER_SIGN_SECRET;
    13.     $params   = explode('.',$_SERVER['REMOTE_ADDR']);
    14.     $rawSign .= $params[0].$params[1];
    15.     $signParts = array('HTTP_USER_AGENT');
    16.     foreach($signParts as $signPart){
    17.      $rawSign.= '::'.(isset($_SERVER[$signPart]) ? $_SERVER[$signPart] : 'none');
    18.     }
    19.   return(md5($rawSign));
    20. }
    21. date_default_timezone_set('Europe/Moscow');
    22. ?>
    Коннекты

    PHP:
    1. <?php
    2. $db=false;
    3. $last_sql_log = '';
    4.  define('MYSQL_NOW','asd67kjk*(&86123');
    5.  define('MYSQL_INC','asd6asd7kjk*(&86123');
    6.  
    7. function db($config=false){
    8.     global $db;
    9.     if(!$db){
    10.         $db = mysql_connect ($config['server'],$config['user'],$config['pass']) or  die('Not connect to SQL server');
    11.         mysql_select_db($config['db'],$db) or  die('Not connect to SQL database');
    12.         mysql_query('SET NAMES UTF8');
    13.  
    14.     }
    15.     return $db;
    16. }
    17.  
    18. function escapeArr($arr){
    19.     for($i=1,$n=sizeof($arr);$i<$n;$i++){
    20.         $arr[$i] = mysql_real_escape_string($arr[$i]);
    21.     }
    22.     return $arr;
    23. }
    24.  
    25. function query($s){
    26.     global $last_sql_log;
    27.     if(func_num_args()>1){
    28.         $arr = func_get_args();
    29.         $s = call_user_func_array('sprintf',escapeArr($arr));
    30.     }else if(is_array($s)){
    31.         $s = call_user_func_array('sprintf',escapeArr($s));
    32.     }
    33.     $res = mysql_query($s);
    34.     if($error = mysql_error()) {
    35.         $last_sql_log = '<div>Query: '.$s.'</div><div style="color:red">Error: '.$error.'</div>';
    36.         print $last_sql_log;
    37.         die();
    38.     }
    39.     return $res;
    40. }
    41.  
    42. function select(){
    43.     $arr = func_get_args();
    44.     $res = call_user_func_array('query',$arr);
    45.     $arr = Array();
    46.     while($line = mysql_fetch_assoc($res)) $arr[] = $line;
    47.     return $arr;
    48. }
    49.  
    50. function select_key($key,$items){
    51.     $list = array();
    52.     for($i=0,$n=sizeof($items);$i<$n;$i++){
    53.         $list[$items[$i][$key]] = $items[$i];
    54.     }
    55.     return $list;
    56. }
    57. /**
    58.  * Выполняет запрос выборки одной записи к базе данных.
    59.  * Если передано более одного параметра, они буду
    60.  * вставлены в запрос sprintf`ом
    61.  * @return array Выбранная запись
    62.  */
    63. function first(){
    64.     $arr = func_get_args();
    65.     $res = call_user_func_array('query',$arr);
    66.     return mysql_fetch_assoc($res);
    67. }
    68.  
    69. function insert($table, $query){
    70.   $arg1 = array();
    71.   $arg2 = array();
    72.   foreach($query as $k=>$v) {
    73.    $arg1[] = sprintf('`%s`',$k);
    74.    if($v===MYSQL_NOW){
    75.      $arg2[] = 'NOW()';
    76.     }else{
    77.      $arg2[] = sprintf('"%s"',mysql_escape_string(trim($v)));
    78.     }
    79.    }
    80.   $s = 'INSERT INTO '.$table.' ('.implode(',',$arg1).')VALUES('.implode(',',$arg2).')';
    81.   if(query($s)){
    82.    return mysql_insert_id();
    83.   }else{
    84.    return false;
    85.   }
    86.  }
    87.  
    88. function update($table,$query,$where){
    89.     $arr=array();
    90.     foreach($query as $k=>$v) {
    91.         $arr[] = sprintf('`%s`="%s"',$k,mysql_real_escape_string(trim($v)));
    92.     }
    93.     return query('UPDATE '.$table.' SET '.implode(',',$arr).' WHERE '.$where);
    94. }
    95.  
    96. function delete($table,$where){
    97.     return query('DELETE FROM '.$table.' WHERE '.$where);
    98. }
    99.  
    100. ?>
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    на mysqli_ надо переводить
    и это - не в тот раздел разместил - если за денюжку - то во фриланс
     
  3. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    PHP:
    1. array() = [];
    2.  
    3. define() = const;
    PHP:
    1. $rawSign.= '::'.(isset($_SERVER[$signPart]) ? $_SERVER[$signPart] : 'none');
    Заменить на

    PHP:
    1. $rawSign.= '::'.(isset($_SERVER[$signPart]) ?? 'none');
    PHP:
    1. mysql = mysqli, я бы вообще перешёл на PDO
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    у тебя ошибка.
    пдо работает на 6.5% медленнее
    --- Добавлено ---
    твой скрипт переводится за 2 секунды, а ты денюжку хочешь дать из - за незнания в пхп.

    другой случай - нужно менять логику кода, но... да кому нужна эта логика, работает и работает себе.