Вход Регистрация
Файл: sys/inc/mysql2i.class.php
Строк: 487
<?php
/*
  mysql2i.class.php ver 1.5

  #fixed statement structure to support legacy versions of PHP older than 5.5
  #updated mysql_result
  #fixed mysql_fetch_object so third param defaults to an array

  ver 1.0

  Initial release

  This class is released into the public domain without copyright

*/

/*

  Доработка biket
  DCMS-Social.ru

*/


class mysql2i
{

  public static 
$queries = [];

  public static 
$sql_count 0;

  public static 
$currObj;


  public static function 
sql_count()
  {


    return 
self::$sql_count;

  }

  public static function 
queries()
  {


    return 
self::$queries;

  }


  public static function 
mysql_affected_rows($link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    return 
mysqli_affected_rows($link);

  }

  public static function 
mysql_client_encoding($link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    return 
mysqli_character_set_name($link);

  }

  public static function 
mysql_close($link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    return 
mysqli_close($link);

  }

  public static function 
mysql_connect($host ''$username ''$passwd ''$new_link FALSE$client_flags 0)
  {

    
$link mysqli_connect($host$username$passwd);
    
self::$currObj $link;

    return 
$link;

  }

  public static function 
mysql_create_db($database_name$link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    
$query "CREATE DATABASE `" $database_name "`";
    
mysqli_query($link$query);

    
$e mysqli_errno($link);
    if (empty(
$e)) {
      return 
TRUE;
    } else {
      return 
FALSE;
    }

  }

  public static function 
mysql_data_seek($result$offset)
  {

    return 
mysqli_data_seek($result$offset);

  }

  public static function 
mysql_db_name($result$row$field NULL)
  {

    
mysqli_data_seek($result$row);

    
$f mysqli_fetch_row($result);

    return 
$f[0];

  }

  public static function 
mysql_db_query($database$query$link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }
    
mysqli_select_db($link$database);
    
$r mysqli_query($link$query);

    return 
$r;

  }

  public static function 
mysql_drop_db($database$link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }
    
$query "DROP DATABASE `" $database "`";
    
mysqli_query($link$query);

    
$e mysqli_errno($link);
    if (empty(
$e)) {
      return 
TRUE;
    } else {
      return 
FALSE;
    }

  }

  public static function 
mysql_errno($link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    return 
mysqli_errno($link);
  }

  public static function 
mysql_error($link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    return 
mysqli_error($link);
  }

  public static function 
mysql_escape_string($escapestr)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    return 
mysqli_real_escape_string($link$escapestr);
  }

  public static function 
mysql_fetch_array($result$resulttype MYSQLI_BOTH)
  {

    return 
mysqli_fetch_array($result$resulttype);

  }

  public static function 
mysql_fetch_assoc($result)
  {
if (
$result==null) return null;
else return 
mysqli_fetch_assoc($result);

  }

  public static function 
mysql_fetch_field($result$field_offset 0)
  {

    if (!empty(
$field_offset)) {
      for (
$x 0$x $field_offset$x++) {
        
mysqli_fetch_field($result);
      }
    }

    return 
mysqli_fetch_field($result);

  }

  public static function 
mysql_fetch_lengths($result)
  {

    return 
mysqli_fetch_lengths($result);

  }

  public static function 
mysql_fetch_object($result$class_name NULL$params = array())
  {

    return 
mysqli_fetch_object($result$class_name$params);

  }

  public static function 
mysql_fetch_row($result)
  {

    return 
mysqli_fetch_row($result);

  }

  
/*
  credit to andre at koethur dot de from php.net and NinjaKC from stackoverflow.com
  */
  
public static function mysql_field_flags($result$field_offset)
  {
    static 
$flags;

    
$flags_num mysqli_fetch_field_direct($result$field_offset)->flags;

    if (!isset(
$flags)) {
      
$flags = array();
      
$constants get_defined_constants(TRUE);
      foreach (
$constants['mysqli'] as $c => $n) if (preg_match('/MYSQLI_(.*)_FLAG$/'$c$m)) if (!array_key_exists($n$flags)) $flags[$n] = $m[1];
    }

    
$result = array();
    foreach (
$flags as $n => $t) if ($flags_num $n$result[] = $t;

    
$return implode(' '$result);
    
$return str_replace('PRI_KEY''PRIMARY_KEY'$return);
    
$return strtolower($return);

    return 
$return;
  }

  public static function 
mysql_field_len($result$field_offset)
  {

    
$fieldInfo mysqli_fetch_field_direct($result$field_offset);

    return 
$fieldInfo->length;

  }

  public static function 
mysql_field_name($result$field_offset)
  {

    
$fieldInfo mysqli_fetch_field_direct($result$field_offset);

    return 
$fieldInfo->name;

  }

  public static function 
mysql_field_seek($result$fieldnr)
  {

    return 
mysqli_field_seek($result$fieldnr);

  }

  public static function 
mysql_field_table($result$field_offset)
  {

    
$fieldInfo mysqli_fetch_field_direct($result$field_offset);

    return 
$fieldInfo->table;

  }

  
/*
  credit to andre at koethur dot de from php.net and NinjaKC from stackoverflow.com
  */
  
public static function mysql_field_type($result$field_offset)
  {
    static 
$types;

    
$type_id mysqli_fetch_field_direct($result$field_offset)->type;

    if (!isset(
$types)) {
      
$types = array();
      
$constants get_defined_constants(TRUE);
      foreach (
$constants['mysqli'] as $c => $n) if (preg_match('/^MYSQLI_TYPE_(.*)/'$c$m)) $types[$n] = $m[1];
    }

    return 
array_key_exists($type_id$types) ? $types[$type_id] : NULL;
  }

  public static function 
mysql_free_result($result)
  {

    return 
mysqli_free_result($result);

  }

  public static function 
mysql_get_client_info()
  {

    
$link self::$currObj;

    return 
mysqli_get_client_info($link);
  }

  public static function 
mysql_get_host_info($link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    return 
mysqli_get_host_info($link);
  }

  public static function 
mysql_get_proto_info($link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    return 
mysqli_get_proto_info($link);
  }

  public static function 
mysql_get_server_info($link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    return 
mysqli_get_server_info($link);
  }

  public static function 
mysql_info($link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    return 
mysqli_info($link);
  }

  public static function 
mysql_insert_id($link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    return 
mysqli_insert_id($link);
  }

  public static function 
mysql_list_dbs($link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }
    
$query "SHOW DATABASES";
    
$r mysqli_query($link$query);

    
$e mysqli_errno($link);
    if (empty(
$e)) {
      return 
$r;
    } else {
      return 
FALSE;
    }

  }

  public static function 
mysql_list_fields($database_name$table_name$link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }
    
$query "SHOW COLUMNS FROM `" $table_name "`";
    
$r mysqli_query($link$query);

    
$e mysqli_errno($link);
    if (empty(
$e)) {
      return 
$r;
    } else {
      return 
FALSE;
    }

  }

  public static function 
mysql_list_processes($link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    return 
mysqli_thread_id($link);
  }

  public static function 
mysql_list_tables($database$link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }
    
$query "SHOW TABLES FROM `" $database "`";
    
$r mysqli_query($link$query);

    
$e mysqli_errno($link);
    if (empty(
$e)) {
      return 
$r;
    } else {
      return 
FALSE;
    }

  }

  public static function 
mysql_num_fields($result)
  {

    
$link self::$currObj;

    return 
mysqli_field_count($link);
  }

  public static function 
mysql_num_rows($result)
  {

    return 
mysqli_num_rows($result);
  }

  public static function 
mysql_pconnect($host ''$username ''$passwd ''$new_link FALSE$client_flags 0)
  {

    
$link mysqli_connect('p:' $host$username$passwd);
    if (!
$link) {
      echo 
mysqli_error($link) . '<br>';
    }
    
self::$currObj $link;

    return 
$link;

  }

  public static function 
mysql_ping($link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    return 
mysqli_ping($link);

  }

  public static function 
mysql_query($query$link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    
$mtime microtime();
    
$mtime explode(" "$mtime);
    
$mtime $mtime[1] + $mtime[0];
    
$tstart $mtime;

    
$r mysqli_query($link$query);
    
$mtime microtime();
    
$mtime explode(" "$mtime);
    
$mtime $mtime[1] + $mtime[0];
    
$tend $mtime;
    
$tpassed = ($tend $tstart);
    
//     $tpassed = number_format( $tpassed, '6') ;

    // self::$queries[] = $query;
    
self::$sql_count++;
    if (
$tpassed 0.001) {
      
$tmp = ["query" => $query"time" => "$tpassed"];

      
self::$queries[] = $tmp;
    }
    return 
$r;


  }

  public static function 
mysql_real_escape_string($escapestr$link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    return 
mysqli_real_escape_string($link$escapestr);

  }


  public static function 
mysql_result($result$row$field 0)
  {

    
//   if (!isset($field)) $field = 0; // WTF: БЕЗ ЭТОГО НЕ РАБОТАЕТ

    //ver 1.5 code credited to Mario Lurig at https://mariolurig.com/coding/mysqli_result-function-to-match-mysql_result/
    
$numrows mysqli_num_rows($result);
    if (
$numrows && $row <= ($numrows 1) && $row >= 0) {
      
mysqli_data_seek($result$row);
      
$resrow = (is_numeric($field)) ? mysqli_fetch_row($result) : mysqli_fetch_assoc($result);
      if (isset(
$resrow[$field])) {
        return 
$resrow[$field];
      }
    }
    return 
FALSE;

    
/*
              //ver 1.0 code has problems with pointer and does not support numeric offset
              mysqli_data_seek($result,$row);
              if( !empty($field) ){
                  while($finfo = mysqli_fetch_field($result)) {
                      if( $field == $finfo->name ){
                          $f = mysqli_fetch_assoc($result);
                          return $f[$field];
                      }
                  }
              }

              $f = mysqli_fetch_array($result);

              return $f[0];
    */

  
}

  public static function 
mysql_select_db($dbname$link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    } elseif (
is_object($link)) {
      
self::$currObj $link;
    }
    
mysqli_select_db($link$dbname);

    
$e mysqli_errno($link);
    if (empty(
$e)) {
      return 
TRUE;
    } else {
      return 
FALSE;
    }

  }

  public static function 
mysql_set_charset($charset$link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    return 
mysqli_set_charset($link$charset);

  }

  public static function 
mysql_stat($link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    return 
mysqli_stat($link);

  }

  public static function 
mysql_tablename($result$row$field NULL)
  {

    
mysqli_data_seek($result$row);

    
$f mysqli_fetch_array($result);

    return 
$f[0];

  }

  public static function 
mysql_thread_id($link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    return 
mysqli_thread_id($link);

  }

  public static function 
mysql_unbuffered_query($query$link NULL)
  {

    if (empty(
$link)) {
      
$link self::$currObj;
    }

    
$r mysqli_query($link$queryMYSQLI_USE_RESULT);

    return 
$r;

  }

}

if (!
extension_loaded('mysql')) {
  require_once(
'mysql2i.func.php');

}


// Дополнительные функции

if (!function_exists('ereg')) {
  function 
ereg($pattern$subject, &$matches = [])
  {
    return 
preg_match('/' $pattern '/'$subject$matches);
  }
}
if (!
function_exists('eregi')) {
  function 
eregi($pattern$subject, &$matches = [])
  {
    return 
preg_match('/' $pattern '/i'$subject$matches);
  }
}
if (!
function_exists('ereg_replace')) {
  function 
ereg_replace($pattern$replacement$string)
  {
    return 
preg_replace('/' $pattern '/'$replacement$string);
  }
}
if (!
function_exists('eregi_replace')) {
  function 
eregi_replace($pattern$replacement$string)
  {
    return 
preg_replace('/' $pattern '/i'$replacement$string);
  }
}
if (!
function_exists('split')) {
  function 
split($pattern$subject$limit = -1)
  {
    return 
preg_split('/' $pattern '/'$subject$limit);
  }
}
if (!
function_exists('spliti')) {
  function 
spliti($pattern$subject$limit = -1)
  {
    return 
preg_split('/' $pattern '/i'$subject$limit);
  }
}


?>
Онлайн: 1
Реклама