JABZ7SHOP : Web Selling Things With Cheap Price : https://jabz7shop.blogspot.com/ : Go To My Shop Online Now
Bài đăng

MySQL to MySQLi - Chia sẻ code chạy MySQL trên PHP7

8 min read

 

Trên PHP7 đã xóa function mysql và thay vào đó là mysqli, pdo. Vậy làm thế nào để chạy mysql trên php7 trong khi bạn quá lười convert sang MySQLi ?

Code này khá hữu ích cho những bạn tải những mã nguồn code đã cũ và dùng php5 như johncms
Sau đây là đoạn function code mysql to mysqli thần thánh sẽ giúp bạn chạy mysql trên PHP7

<?php
if(!is_callable('mysql_connect')) {
	
	
define('MYSQL_BOTH',MYSQLI_BOTH);
define('MYSQL_NUM',MYSQLI_NUM);
define('MYSQL_ASSOC',MYSQLI_ASSOC);
define('MYSQL_CLIENT_COMPRESS',MYSQLI_CLIENT_COMPRESS);
define('MYSQL_CLIENT_IGNORE_SPACE',MYSQLI_CLIENT_IGNORE_SPACE);
define('MYSQL_CLIENT_INTERACTIVE',MYSQLI_CLIENT_INTERACTIVE);
define('MYSQL_CLIENT_SSL',MYSQLI_CLIENT_SSL);


  /**
 * @param  resource  $identificativo_connessione
 * @return int
 **/
function mysql_affected_rows($identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
 	if(!is_object($identificativo_connessione)) return false;
	return $identificativo_connessione->affected_rows;
}

 /**
 * @param  resource  $identificativo_connessione
 * @return string
 **/
function mysql_client_encoding ($identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	return @mysqli_character_set_name($identificativo_connessione);
}

 /**
 * @param  resource  $identificativo_connessione
 * @return bool
 **/
function mysql_close ($identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	return @mysqli_close($identificativo_connessione);
}



/**
 * @param  string  $server
 * @param  string  $nome_utente
 * @param  string  $password
 * @param  int  $flag_client
 * @return resource
 **/
function mysql_pconnect ($server='' ,$nome_utente='' ,$password='' ,$flag_client=0){
	return mysql_connect($server,$nome_utente,$password,false,$flag_client,'p:');
}


 /**
 * @param  string  $server  es: 127.0.0.1 or 127.0.0.1:3306 or localhost:/var/run/mysqld/mysqld.sock or :/var/run/mysqld/mysqld.sock  
 * @param  string  $nome_utente
 * @param  string  $password
 * @param  bool  $nuova_connessione
 * @param  int  $client_flags
 * @return resource
 **/
function mysql_connect ($server='' ,$nome_utente='' ,$password='' ,$nuova_connessione=false ,$client_flags=0,$persistente=''){
	if(func_num_args()===0 && $_SERVER['MYSQL_CONN']) foreach ($_SERVER['MYSQL_CONN'] as $hash=>&$conns) return $conns;
							
	$hash=sha1(serialize(func_get_args()));
	if(!$nuova_connessione && $_SERVER['MYSQL_CONN'][$hash]) return $_SERVER['MYSQL_CONN'][$hash];
	 
	if(!$server)	  $server = ini_get("mysqli.default_host");
	$server=trim($server);
	if(!$nome_utente) $nome_utente = ini_get("mysqli.default_user");
	if(!$password)    $password= ini_get("mysqli.default_pw"); 
	
	$link = mysqli_init();
	
	$socket=null;
	if(strpos($server,':')!==false) list($server,$porta)=explode(':',$server,2);
	                           else $porta=ini_get("mysqli.default_port"); 
    if(!$server) $server='localhost';			  
    if(!is_numeric($porta)) {
	                         $socket=$porta;
	                         $porta=null;
	                         }
	 if(!$porta && $porta!==null) $porta=3306;
	 $ok=@mysqli_real_connect($link,$persistente.$server,$nome_utente,$password,'',$porta,$socket,$client_flags);
	 if(!$ok) return false;
	//print_r(mysqli_connect($persistente.$server,$nome_utente,$password,'',$porta,null,$flags));
	//print_r($link);
   	 $_SERVER['MYSQL_CONN'][$hash]=&$link;
	return $link;		      
}

 /**
 * @param  string  $nome_database
 * @param  resource  $identificativo_connessione
 * @return bool
 **/
function mysql_create_db ($nome_database ,$identificativo_connessione=null){
	 if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	 return !@mysqli_query($identificativo_connessione,"create database `$nome_database`"); 
}

 /**
 * @param  resource  $identificativo_risultato
 * @param  int  $numero_riga
 * @return bool
 **/
function mysql_data_seek ($identificativo_risultato ,$numero_riga){
   mysqli_store_result($identificativo_risultato);
   return @mysqli_data_seek( $identificativo_risultato , $numero_riga );
}

 /**
 * @param  resource  $risultato
 * @param  int  $riga
 * @param  mixed  $campo
 * @return string
 **/
function mysql_db_name ($risultato ,$riga ,$campo=null){
	if(!@mysqli_data_seek( $risultato , $riga )) return false;
	$riga = mysqli_fetch_assoc($risultato);
	if(!$campo) return $riga['Database'];
		   else return $riga[$campo];
}

 /**
 * @param  string  $database
 * @param  string  $query
 * @param  resource  $identificativo_connessione
 * @return resource
 **/
function mysql_db_query ($database ,$query ,$identificativo_connessione=null){
		if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	    $rs=mysqli_query($identificativo_connessione,"select database()");
		$prec_db=@mysqli_fetch_row ($rs);
		@mysqli_query($identificativo_connessione,"use `$database`",MYSQLI_USE_RESULT);
			$rs=mysqli_query($identificativo_connessione,$query,MYSQLI_STORE_RESULT);
		if(strtolower($prec_db[0])!=strtolower($database)) @mysqli_query($identificativo_connessione,"use `{$prec_db[0]}`",MYSQLI_USE_RESULT);
		return $rs; 
}

 /**
 * @param  string  $nome_database
 * @param  resource  $identificativo_connessione
 * @return bool
 **/
function mysql_drop_db ($nome_database ,$identificativo_connessione=null){
    if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	  return !@mysqli_query($identificativo_connessione,"drop database `$nome_database`");
}

 /**
 * @param  resource  $identificativo_connessione
 * @return int
 **/
function mysql_errno ($identificativo_connessione=null){
	 if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	 if(!is_object($identificativo_connessione)) return false;
	 return $identificativo_connessione->errno;
}

 /**
 * @param  resource  $identificativo_connessione
 * @return string
 **/
function mysql_error ($identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	 if(!is_object($identificativo_connessione)) return false;
	 return $identificativo_connessione->error;
}

 /**
 * @param  string  $stringa_senza_escape
 * @return string
 **/
function mysql_escape_string ($stringa_senza_escape){
	return @mysql_real_escape_string($stringa_senza_escape);
}

 /**
 * @param  resource  $risultato
 * @param  int  $tipo_risultato
 * @return array
 **/
function mysql_fetch_array ($risultato ,$tipo_risultato=null){
	if($tipo_risultato===null) $tipo_risultato=MYSQL_BOTH;
	return @mysqli_fetch_array($risultato ,$tipo_risultato);
}

 /**
 * @param  resource  $risultato
 * @return array
 **/
function mysql_fetch_assoc ($risultato){
    return @mysqli_fetch_assoc($risultato);
}

 

 /**
 * @param  resource  $risultato
 * @return array
 **/
function mysql_fetch_lengths ($risultato){
   return @mysqli_fetch_lengths($risultato);
}

 /**
 * @param  resource  $risultato
 * @return object
 **/
function mysql_fetch_object ($risultato){
   return @mysqli_fetch_object($risultato);
}

 /**
 * @param  resource  $risultato
 * @return array
 **/
function mysql_fetch_row ($risultato){
 return @mysqli_fetch_row ($risultato);
}


 /**
 * @param  resource  $risultato
 * @param  int  $indice_campo
 * @return int
 **/
function mysql_field_seek ($risultato ,$indice_campo){
	return @mysqli_field_seek($risultato ,$indice_campo);
}


 /**
 * @param  resource  $risultato
 * @return bool
 **/
function mysql_free_result ($risultato){
	@mysqli_free_result ($risultato);
}

 /**
 * @return string
 **/
function mysql_get_client_info (){
     if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
 	 if(!is_object($identificativo_connessione)) return false;
	 return $identificativo_connessione->client_info;
}

 /**
 * @param  resource  $identificativo_connessione
 * @return string
 **/
function mysql_get_host_info($identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
 	if(!is_object($identificativo_connessione)) return false;
	return $identificativo_connessione->host_info;
}

 /**
 * @param  resource  $identificativo_connessione
 * @return int
 **/
function mysql_get_proto_info($identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	if(!is_object($identificativo_connessione)) return false;
	return $identificativo_connessione->protocol_version;
}

 /**
 * @param  resource  $identificativo_connessione
 * @return string
 **/
function mysql_get_server_info ($identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	if(!is_object($identificativo_connessione)) return false;
	return $identificativo_connessione->server_info;
}

 /**
 * @param  resource  $identificativo_connessione
 * @return string
 **/
function mysql_info ($identificativo_connessione=null){
	 if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	 if(!is_object($identificativo_connessione)) return false;
	 return $identificativo_connessione->info;
}

 /**
 * @param  resource  $identificativo_connessione
 * @return int
 **/
function mysql_insert_id ($identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	if(!is_object($identificativo_connessione)) return false;
	return $identificativo_connessione->insert_id;
}

 /**
 * @param  resource  $identificativo_connessione
 * @return resource
 **/
function mysql_list_dbs ($identificativo_connessione=null){
   if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
   $rs=@mysqli_query($identificativo_connessione,'SHOW DATABASES');
   @mysqli_store_result($rs);
   return $rs;
}

 
 /**
 * @param  resource  $risultato
 * @return int
 **/
function mysql_num_fields ($risultato){
	return @mysqli_num_fields ($risultato);
}

 /**
 * @param  resource  $risultato
 * @return int
 **/
function mysql_num_rows ($risultato){
	return @mysqli_num_rows($risultato);
}



 /**
 * @param  resource  $identificativo_connessione
 * @return bool
 **/
function mysql_ping ($identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	return @mysqli_ping($identificativo_connessione);
}



 /**
 * @param  string  $query
 * @param  resource  $identificativo_connessione
 * @return resource
 **/
function mysql_query ($query ,$identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	return @mysqli_query($identificativo_connessione,$query );
}

 /**
 * @param  string  $stringa_seza_escape
 * @param  resource  $identificativo_connessione
 * @return string
 **/
function mysql_real_escape_string ($stringa_seza_escape ,$identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	return @mysqli_real_escape_string($identificativo_connessione,$stringa_seza_escape);
}


 /**
 * @param  string  $nome_database
 * @param  resource  $identificativo_connessione
 * @return bool
 **/
function mysql_select_db ($nome_database ,$identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	return @mysqli_select_db($identificativo_connessione,$nome_database);
}

 /**
 * @param  string  $charset
 * @param  resource  $identificativo_connessione
 * @return bool
 **/
function mysql_set_charset ($charset ,$identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	return @mysqli_set_charset($identificativo_connessione,$charset);
}

 /**
 * @param  resource  $identificativo_connessione
 * @return string
 **/
function mysql_stat ($identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	if(!is_object($identificativo_connessione)) return false;
	return $identificativo_connessione->stat;

}


 /**
 * @param  resource  $identificativo_connessione
 * @return int
 **/
function mysql_thread_id ($identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	 if(!is_object($identificativo_connessione)) return false;
	 return $identificativo_connessione->thread_id;
}

 /**
 * @param  string  $query
 * @param  resource  $identificativo_connessione
 * @return resource
 **/
function mysql_unbuffered_query($query ,$identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
    return @mysqli_query($identificativo_connessione,$query,0);
 }



/**
 * @param  string  $nome_database
 * @param  string  $nome_tabella
 * @param  resource  $identificativo_connessione
 * @return resource
 **/
function mysql_list_fields ($nome_database ,$nome_tabella ,$identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	return @mysqli_query($identificativo_connessione,"select * FROM `$nome_database`.`$nome_tabella` limit 1");
}

/**
 * @param  resource  $risultato
 * @param  int  $indice_campo
 * @return string
 **/
function mysql_field_name ($risultato ,$indice_campo){
	$info=@mysqli_fetch_field_direct($risultato,$indice_campo);
	return $info->name;
}

/**
 * @param  resource  $risultato
 * @param  int  $indice_campo
 * @return string
 **/
function mysql_field_flags ($risultato ,$indice_campo){
	$info=@mysqli_fetch_field_direct($risultato,$indice_campo);
	return $info->flags;
}


/**
 * @param  resource  $risultato
 * @param  int  $indice_campo
 * @return int
 **/
function mysql_field_len($risultato ,$indice_campo){
	$info=@mysqli_fetch_field_direct($risultato,$indice_campo);
	return $info->length;
}

/**
 * @param  resource  $risultato
 * @param  int  $indice_campo
 * @return string
 **/
function mysql_field_type ($risultato ,$indice_campo){
	$info=@mysql_fetch_field($risultato,$indice_campo);//necessario perchè type in mysqli è numerico
	return $info->type;
}


/**
 * @param  resource  $risultato
 * @param  int  $indice_campo
 * @return string
 **/
function mysql_field_table ($risultato ,$indice_campo){
	$info=@mysqli_fetch_field_direct($risultato,$indice_campo);
	return $info->table;
}


/**
 * @param  resource  $identificativo_connessione
 * @return resource
 **/
function mysql_list_processes ($identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	return @mysqli_query($identificativo_connessione,"show processlist",MYSQLI_STORE_RESULT);
}

/**     
 * @param  string  $database
 * @param  resource  $identificativoi_connessione
 * @return resource
 **/
function mysql_list_tables ($database ,$identificativo_connessione=null){
	if(!$identificativo_connessione) $identificativo_connessione=mysql_connect();
	return @mysqli_query($identificativo_connessione,"SHOW TABLES",MYSQLI_STORE_RESULT);

}


/**
 * @param  resource  $risultato
 * @param  int  $i
 * @return string
 **/
function mysql_tablename ($risultato ,$i){
	@mysqli_data_seek($risultato,$i);
	$row=@mysqli_fetch_row($risultato);
	return $row[0];
}



/**
 * @param  resource  $risultato
 * @param  int  $campo
 * @param  mixed  $campo
 * @return mixed
 **/
function mysql_result ($risultato ,$riga ,$colonna=null){
	$esito=@mysqli_data_seek($risultato,$riga);
	if(!$esito && $colonna!==null) return @mysqli_field_seek($risultato,$colonna);
	return $esito;
}

/**
 * @param  resource  $risultato
 * @param  int  $indice_campo
 * @return object
 **/
function mysql_fetch_field ($risultato ,$indice_campo=0){
	
	mysqli_field_seek($risultato, $indice_campo);
	$info=mysqli_fetch_field($risultato);
	
	$out=new stdclass();
	$out->name=$info->name;
	$out->table=$info->table;
	$out->def='';
	$out->max_length=$info->max_length;
	$infos=array();
	if($info->orgtable && $info->db && $info->orgname ) {
		$rs=mysqli_query(mysql_connect(),"select is_nullable,column_key,numeric_precision,column_type
		                                      	from `information_schema`.`COLUMNS` where
			                                     table_schema='{$info->db}' and
			                                     table_name='{$info->orgtable}' and
		                                       	 column_name='{$info->orgname}' limit 1");
		$infos=mysqli_fetch_assoc($rs);
	}	
			
	$out->not_null=($infos['is_nullable']=='YES'?0:1);
	$out->primary_key=($infos['column_key']=='PRI'?1:0);
	$out->multiple_key=($infos['column_key']=='MUL'?1:0);
	$out->unique_key=($infos['column_key']=='UNI'?1:0);
	$out->numeric=($infos['numeric_precision']>0?1:0);
	$out->blob=intval(preg_match('/blob$/',$infos['column_type']));
	$out->type=$info->type;
	$out->unsigned=intval(stripos(" {$infos['column_type']} ",' unsigned ')!==false);
	$out->zerofill=intval(stripos(" {$infos['column_type']} ",' zerofill ')!==false);
	switch ($info->type){
		  case 4:
		  case 5:
		  case 246:$out->type='real';break;
		  case 7:$out->type='timestamp';
		  		 $out->unsigned=1;
		 		 $out->zerofill=1;
		 		 break;
		 case 10:$out->type='date';break;
		 case 11:$out->type='time';break;
		 case 12:$out->type='datetime';break;
		 case 13:$out->type='year';
		 		 $out->unsigned=1;
		 		 $out->zerofill=1;
		 		break;
		 case 16:$out->numeric=0;
		 		 $out->unsigned=1;
		 		 $out->zerofill=0;
		 		 $out->type='int';
		 		 break;	
		 case 255:$out->type='geometry';
		 		 $out->blob=1;
		 		 break;
		case 252:$out->type='blob';
				 $out->blob=1;
				 break;
		case 253:
		case 254:$out->type='string';break;
	}
	return $out;
}


}
?>

Thêm đoạn code này vào mỗi file muốn chạy sql: (Lưu ý thay đường dẫn đến đúng file code bạn đã save ở trên cho đúng nhé)

require('system/mysqli.php');

Tải xuống nếu bạn quá lười copy
Cảm ơn đã đọc bài viết. Post by LYT v4u - Credit to SourceForge mysqlwithmysqli.

00:00 / 00:00

Bạn có thể thích những bài đăng này

Đăng nhận xét