一个以前不在工作的同事在php5中创建了一个数据库,因此我不得不更新到php7。 我不像他那样精通,所以在转换一些函数时遇到了一些麻烦,mysqli_real_escape_string是主要函数 这是一段代码:
/************** Classes ****************/
require 'class/class_mysql.php';
$mysqli = new mysql;
/**************** MySQL ****************/
require 'db_config.php';
if(!$mysqli->connect($databaseConfig['host'], $databaseConfig['user'], $databaseConfig['pass'])) {
fatal_error('Unable to connect to MySQL server.');
}
if(!$mysqli->select_db($databaseConfig['database'])) {
debug(mysqli_error());
}
/******* Prevent SQL Injection ********/
function escape_array($array) {
if(!is_array($array)) {
fatal_error('$array is not an array.');
}
foreach ($array as $key => $value) {
$array[$key] = clean($value);
}
return $array;
}
$_SERVER['REQUEST_URI'] = str_replace('&', '&', $_SERVER['REQUEST_URI']); //remove &
function clean($data) {
if(is_array($data)) {
$data = escape_array($data);
} else {
$data = mysqli_real_escape_string($this->link, htmlspecialchars(trim($data), ENT_QUOTES, "ISO-8859-1"));
}
return $data;
}
function fatal_error($msg) {
echo '<br /><br /><b>Fatal Error:</b> <font color="red">'.$msg.'</font><br /><br />';
exit;
}
,并从“类”包含文件中:
class mysql {
var $link;
var $queries = 0;
function connect($host, $user, $pass) {
$this->link = mysqli_connect($host, $user, $pass, $database);
if($this->link) {
return TRUE;
} else {
return FALSE;
}
}
最后是数据库配置文件:
$databaseConfig = array(
'host' => 'localhost',
'user' => 'user',
'pass' => 'pass',
'database' => 'database'
);
我在$ data = mysqli_real_escape_string($ this-> link,htmlspecialchars(trim($ data),ENT_QUOTES,“ ISO-8859-1”))上收到错误; “ $ this-> link”部分的行
我相信我的问题是因为db config是一个数组。 我无法弄清楚这一点,所以任何帮助都会给您带来帮助!
当我学习PDO时,很可能会再次更改它。