Вход Регистрация
Файл: 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, $query, MYSQLI_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);
  }
}


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