测试可用
直接存储为php7.php引用即可
<?php
/**
* php7 不支持mysql扩展的情况下,旧程序运行在PHP7环境下,直接通过公用文件包含此mysql扩展相关的函数包即可。
如果旧程序不想使用mysql扩展,但想使用mysql扩展的相同的函数,也可以使用此文件。
*/
if (!function_exists('mysql_connect')) {
function_exists('mysqli_connect') or die("要在没有mysql扩展的PHP中使用mysql相关函数,请先开启mysqli扩展!");
function mysql_connect($server, $username, $password, $new_link = false, $client_flags = 0)
{
$port = '3306';
if (strpos($server, ':') !== false) {
$host_port = explode(':', $server);
$port = $host_port[1];
}
$link = mysqli_connect($server, $username, $password, '', $port);
//mysqli不像mysql扩展那样在全局维护连接对象(mysql操作函数省略连接参数进行查询时会自动从全局作用域获取连接),所以这里手动添加一个到全局。
if(!mysqli_connect_errno()){
$GLOBALS['link_identifier'] = $link;
return $link;
}
return false;
}
function link_identifier_of(&$link_identifier = null)
{
if (is_null($link_identifier)) {
$link_identifier = !empty($GLOBALS['link_identifier']) ? $GLOBALS['link_identifier'] : null;
}
}
function mysql_error($link_identifier = null)
{
if(empty($GLOBALS['link_identifier'])){
return mysqli_connect_error();
}
link_identifier_of($link_identifier);
return mysqli_error($link_identifier);
}
function mysql_errno($link_identifier = null)
{
if(empty($GLOBALS['link_identifier'])){
return mysqli_connect_errno();
}
link_identifier_of($link_identifier);
return mysqli_errno($link_identifier);
}
function mysql_selectdb($database_name, $link_identifier=null)
{
return mysql_select_db($database_name, $link_identifier);
}
function mysql_select_db($database_name, $link_identifier = null)
{
link_identifier_of($link_identifier);
return mysqli_select_db($link_identifier, $database_name);
}
function mysql_query($query, $link_identifier = null)
{
link_identifier_of($link_identifier);
$resultmode = MYSQLI_STORE_RESULT;
return mysqli_query($link_identifier, $query, $resultmode);
}
defined('MYSQL_BOTH') or define('MYSQL_BOTH', MYSQLI_BOTH);
defined('MYSQL_ASSOC') or define('MYSQL_ASSOC', MYSQLI_ASSOC);
defined('MYSQL_NUM') or define('MYSQL_NUM', MYSQLI_NUM);
function mysql_fetch_array($result, $result_type = MYSQL_BOTH)
{
return is_object($result) ? mysqli_fetch_array($result, $result_type) : array();
}
function mysql_fetch_assoc($result)
{
return mysql_fetch_array($result, MYSQL_ASSOC);
}
function mysql_fetch_row($result)
{
return mysql_fetch_array($result, MYSQL_NUM);
}
function mysql_fetch_object($result, $class_name = 'stdClass', $params = null)
{
if (!$params) {
$params = array();
}
return mysqli_fetch_object($result, $class_name, $params);
}
function mysql_fetch_lengths($result)
{
return mysqli_fetch_lengths($result);
}
function mysql_fetch_field($result, $field_offset = null)
{
// fix
if(!isset($field_offset)){
return mysqli_fetch_field($result);
}
return mysqli_fetch_field_direct($result, intval($field_offset));
}
function mysql_field_name($result, $field_offset = 0)
{
if (is_object($result)) {
$mysql_field = mysql_fetch_field($result, $field_offset);
if (is_object($mysql_field)) {
return $mysql_field->name;
}
}
if (is_array($result)) {
return $result["$field_offset"];
}
return null;
}
function mysql_field_len($result, $field_offset = 0)
{
$mysql_field = mysql_fetch_field($result, $field_offset);
if (is_object($mysql_field)) {
return $mysql_field->length;
}
return null;
}
function mysql_field_table($result, $field_offset = 0)
{
$mysql_field = mysql_fetch_field($result, $field_offset);
if (is_object($mysql_field)) {
return $mysql_field->table;
}
return null;
}
function mysql_field_type($result, $field_offset = 0)
{
$mysql_field = mysql_fetch_field($result, $field_offset);
if (is_object($mysql_field)) {
$type = $mysql_field->type;
switch ($type) {
case MYSQLI_TYPE_VAR_STRING:
case MYSQLI_TYPE_STRING:
$type = 'string';
break;
case MYSQLI_TYPE_LONG:
case MYSQLI_TYPE_SHORT:
case MYSQLI_TYPE_TINY:
case MYSQLI_TYPE_LONGLONG:
$type = 'int';
break;
case MYSQLI_TYPE_BLOB:
case MYSQLI_TYPE_LONG_BLOB:
case MYSQLI_TYPE_MEDIUM_BLOB:
case MYSQLI_TYPE_TINY_BLOB:
$type = 'blob';
break;
case MYSQLI_TYPE_CHAR:
$type = 'char';
break;
default:
$type = 'string';
break;
}
return $type;
}
return null;
}
function mysql_field_flags($result, $field_offset)
{
$mysql_field = mysql_fetch_field($result, $field_offset);
if (is_object($mysql_field)) {
//return $mysql_field->flags;
}
return null;
}
function mysql_field_seek($result, $field_offset)
{
$mysql_field = mysql_fetch_field($result, $field_offset);
if (is_object($mysql_field)) {
//return $mysql_field->se;
}
return null;
}
function mysql_free_result($result)
{
$flag = true;
try {
mysqli_free_result($result);
} catch (\Exception $e) {
$flag = false;
}
return $flag;
}
function mysql_close($link_identifier = null)
{
link_identifier_of($link_identifier);
if(!empty($GLOBALS['link_identifier'])){
unset($GLOBALS['link_identifier']);
}
return mysqli_close($link_identifier);
}
function mysql_pconnect($server, $username, $password, $client_flags = null)
{
return mysql_connect($server, $username, $password, true, 0);
}
function mysql_stat($link_identifier = null)
{
link_identifier_of($link_identifier);
return mysqli_stat($link_identifier);
}
function mysql_affected_rows($link_identifier = null)
{
link_identifier_of($link_identifier);
return mysqli_affected_rows($link_identifier);
}
function mysql_client_encoding($link_identifier = null)
{
link_identifier_of($link_identifier);
return mysqli_client_encoding($link_identifier);
}
function mysql_create_db($database_name, $link_identifier)
{
link_identifier_of($link_identifier);
$query = "create database `$database_name` default character set = 'utf8' ";
$resultmode = MYSQLI_STORE_RESULT;
return mysqli_query($link_identifier, $query, $resultmode);
}
function mysql_data_seek($result, $row_number)
{
return mysqli_data_seek($result, $row_number);
}
function mysql_db_name($result, $row, $field = null)
{
if (is_array($result)) {
return $result["$row"];
}
mysql_data_seek($result, $row);
$row = mysql_fetch_row($result);
$dbname = $row[0];
return $dbname;
}
function mysql_db_query($database, $query, $link_identifier = null)
{
link_identifier_of($link_identifier);
mysqli_select_db($link_identifier,$database);
mysqli_query($link_identifier,$query);
}
function mysql_drop_db($database_name, $link_identifier)
{
link_identifier_of($link_identifier);
$result = mysqli_query($link_identifier, "drop `$database_name`");
return $result;
}
function mysql_escape_string($unescaped_string, $link_identifier = null)
{
link_identifier_of($link_identifier);
return mysqli_escape_string($link_identifier, $unescaped_string);
}
function mysql_real_escape_string($unescaped_string, $link_identifier = null)
{
link_identifier_of($link_identifier);
return mysqli_real_escape_string($link_identifier, $unescaped_string);
}
function mysql_get_client_info()
{
return mysqli_get_client_info();
}
function mysql_get_host_info($link_identifier = null)
{
link_identifier_of($link_identifier);
return mysqli_get_host_info($link_identifier);
}
function mysql_get_proto_info($link_identifier = null)
{
link_identifier_of($link_identifier);
return mysqli_get_proto_info($link_identifier);
}
function mysql_get_server_info($link_identifier = null)
{
link_identifier_of($link_identifier);
return mysqli_get_server_info($link_identifier);
}
function mysql_info($link_identifier = null)
{
link_identifier_of($link_identifier);
return mysqli_info($link_identifier);
}
function mysql_insert_id($link_identifier = null)
{
link_identifier_of($link_identifier);
return mysqli_insert_id($link_identifier);
}
function mysql_list_dbs($link_identifier = null)
{
link_identifier_of($link_identifier);
return mysqli_query($link_identifier, 'show databases');
}
function mysql_list_fields($database_name, $table_name, $link_identifier = null)
{
link_identifier_of($link_identifier);
$result = mysqli_query($link_identifier, "DESCRIBE `$database_name`.`$table_name`");
$column = array();
while ($arr = mysqli_fetch_assoc($result)) {
$column[] = $arr['Field'];
}
return $column;
}
function mysql_num_fields($result)
{
if ($result instanceof object) {
return mysqli_num_fields($result);
}
if (is_array($result)) {
return count($result);
}
return 0;
}
function mysql_list_processes($link_identifier = null)
{
link_identifier_of($link_identifier);
$result = mysqli_query($link_identifier, "show processlist");
return $result;
}
function mysql_list_tables($database, $link_identifier = null)
{
link_identifier_of($link_identifier);
mysqli_query($link_identifier, "use `$database`");
$result = mysqli_query($link_identifier, "show tables");
return $result;
}
function mysql_num_rows($result)
{
if (is_array($result)) {
return count($result);
}
return mysqli_num_rows($result);
}
function mysql_ping($link_identifier = null)
{
link_identifier_of($link_identifier);
return mysqli_ping($link_identifier);
}
function mysql_result($result, $row = 0, $field = 0)
{
mysql_data_seek($result, $row);
$arr = mysql_fetch_array($result);
$column_result = $arr["$field"];
if ($row != 0) {
mysql_data_seek($result, 0);
}
return $column_result;
}
function mysql_set_charset($charset, $link_identifier = null)
{
link_identifier_of($link_identifier);
return mysqli_set_charset($link_identifier, $charset);
}
function mysql_tablename($result, $i=0)
{
if (is_array($result)) {
return $result["$i"];
}
mysql_data_seek($result, $i);
$row = mysql_fetch_row($result);
$tablename = $row[0];
return $tablename;
}
function mysql_thread_id($link_identifier = null)
{
link_identifier_of($link_identifier);
return mysqli_thread_id($link_identifier);
}
function mysql_unbuffered_query($query, $link_identifier = null)
{
link_identifier_of($link_identifier);
return mysqli_query($link_identifier, $query);
}
}