如何使用fix_mysql.inc.php文件用Mysqli替换所有MySql函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用fix_mysql.inc.php文件用Mysqli替换所有MySql函数相关的知识,希望对你有一定的参考价值。
嘿我使用php 7,并告诉它它不支持mysql功能。我研究了net并找到了fix_mysql.inc.php,告诉我将所有Myaql函数替换为Mysqli,但现在我不知道如何实现它。请帮忙!
fix_mysql.inc.php
<?php
/**
* replacement for all mysql functions
*/
if (!function_exists("mysql_connect")){
/* warning: fatal error "cannot redeclare" if a function was disabled in php.ini with disable_functions:
disable_functions =mysql_connect,mysql_pconnect,mysql_select_db,mysql_ping,mysql_query,mysql_fetch_assoc,mysql_num_rows,mysql_fetch_array,mysql_error,mysql_insert_id,mysql_close,mysql_real_escape_string,mysql_data_seek,mysql_result
*/
function mysql_connect($host, $username, $password){
global $dbconnect;
$dbconnect = mysqli_connect($host, $username, $password);
return $dbconnect;
}
function mysql_pconnect($host, $username, $password){
global $dbconnect;
$dbconnect = mysqli_connect("p:".$host, $username, $password);
return $dbconnect;
}
function mysql_select_db($db,$dbconnect){
return mysqli_select_db ( $dbconnect,$db );
}
function mysql_ping($dbconnect){
return mysqli_ping ( $dbconnect );
}
function mysql_query($stmt){
global $dbconnect;
return mysqli_query ($dbconnect, $stmt );
}
function mysql_fetch_assoc($erg){
return mysqli_fetch_assoc ($erg );
}
function mysql_num_rows($e){
return mysqli_num_rows ($e );
}
function mysql_affected_rows($e=NULL){
return mysqli_affected_rows ($e );
}
function mysql_fetch_array($e){
return mysqli_fetch_array ($e );
}
function mysql_error(){
global $dbconnect;
return mysqli_error ($dbconnect);
}
function mysql_insert_id($cnx){
return mysqli_insert_id ( $cnx );
}
function mysql_close(){
return true;
}
function mysql_real_escape_string($s){
global $dbconnect;
return mysqli_real_escape_string($dbconnect,$s);
}
function mysql_data_seek($re,$row){
return mysqli_data_seek($re,$row);
}
function mysql_result($res,$row=0,$col=0){
$numrows = mysqli_num_rows($res);
if ($numrows && $row <= ($numrows-1) && $row >=0){
mysqli_data_seek($res,$row);
$resrow = (is_numeric($col)) ? mysqli_fetch_row($res) : mysqli_fetch_assoc($res);
if (isset($resrow[$col])){
return $resrow[$col];
}
}
return false;
}
function mysql_get_server_info() {
global $dbconnect;
return mysqli_get_server_info($dbconnect);
}
function mysql_set_charset($csname) {
global $dbconnect;
return mysqli_set_charset($dbconnect,$csname);
}
function mysql_fetch_object($result) {
return mysqli_fetch_object($result);
}
}
答案
如果我是你,我会重写你的mysql查询并使用mysqli准备好的语句。如果您想要一些示例代码以适应您自己的使用,请告诉我。
另一答案
请注意,这只是使用此include函数修复某些旧代码的一种解决方法,并且生成的项目比使用较新的mysqli函数时更容易受到攻击。如果您确定这不会使您的服务器面临风险,您可以通过在旧代码的开头添加此行来修复旧代码:
<?php
include_once('fix_mysql.inc.php');
另见:https://stackoverflow.com/a/37877644/1069083
以上是关于如何使用fix_mysql.inc.php文件用Mysqli替换所有MySql函数的主要内容,如果未能解决你的问题,请参考以下文章