前言
这几天折腾网络安全的玩意,在搭建安全测试平台的过程中出现了点小问题。
安全测试平台使用的php版本是5.x,但我在服务器上安装的是7.x,7.x的php废除了对mysql的api,添加了一套新的api,mysqli。
虽然可以去安装php5.x来解决这个问题,不过常用的5.6好像也不支持了,那就不折腾了。
考虑到各种因素,于是乎用mysqli的api修改一下,做了个mysql的api兼容层。
代码
仅实现了一些基础api。
<?php
if(!function_exists('mysql_connect')){
function mysql_get_connection($conn){
if (!empty($conn)) {
return $conn;
}
global $g_conn;
return $g_conn;
}
function mysql_connect($host,$user,$passwd){
global $g_conn;
$g_conn = mysqli_connect($host,$user,$passwd);
return $g_conn;
}
function mysql_select_db($dbname,$conn){
return mysqli_select_db($conn,$dbname);
}
function mysql_errno($conn=null){
$conn = mysql_get_connection($conn);
return mysqli_errno($conn);
}
function mysql_error($conn=null){
$conn = mysql_get_connection($conn);
return mysqli_error($conn);
}
function mysql_fetch_array($result){
return mysqli_fetch_array($result);
}
function mysql_fetch_assoc($result){
return mysqli_fetch_assoc($result);
}
function mysql_fetch_row($result){
return mysqli_fetch_row($result);
}
function mysql_insert_id($conn=null){
$conn = mysql_get_connection($conn);
return mysqli_insert_id($conn=null);
}
function mysql_num_rows($result){
return mysqli_num_rows($result);
}
function mysql_query($sql,$conn=null){
$conn = mysql_get_connection($conn);
return mysqli_query($conn,$sql);
}
function mysql_real_escape_string($data){
$conn = mysql_get_connection($conn);
return mysqli_real_escape_string($conn,$data);
}
function mysql_get_server_info($conn=null){
$conn = mysql_get_connection($conn);
return mysqli_get_server_info($conn=null);
}
function mysql_ping($conn=null){
$conn = mysql_get_connection($conn);
return mysqli_ping($conn);
}
}