[英]PHP:Mysqli_real_escape_string
我這段代碼有問題,我看不出問題出在哪里。
<?php
require_once("config.php");
class MySQLDatabase{
private $connection;
function _construct(){
$this->open_connection();
}
public function open_connection(){
$this->connection=mysqli_connect(DB_SERVER,DB_USER,DB_PASS,DB_NAME);
if(!$this->connection){
Die("Database Connection Problem : ".mysqli_connect_errno()." : ".mysqli_connect_error());
}
}
public function close_connection(){
if(isset($this->connection)){
mysqli_close($this->connection);
unset($this->connection);
}
}
public function query($sql){
$sql=mysql_prep($sql);
$result=mysqli_query($this->connection,$sql);
confirm_query($result,$sql);
return $result;
}
public function mysqli_prep($string){
global $connection;
$safe_string=mysqli_real_escape_string($this->connection,$string);
return $safe_string;
}
private function confirm_query($result,$sql){
if(!$result){
Die("Database query Problem : ".$sql);
}
}
}
$database=new MySQLDatabase();
$db=& $database;
?>
我嘗試在Index.php上運行以下代碼
<?php
require_once("../includes/database.php");
echo "Is this working?";
echo $database->mysqli_prep("sss");
?>
但是我收到這個錯誤
警告:mysqli_real_escape_string()期望參數1為mysqli,第29行的\\ includes \\ database.php中給出的null
錯誤是說您在MySQLDatabase::mysqli_prep()
使用的$this->connection
為null
。 那是因為它從未被初始化。
您的類構造函數需要以兩個下划線而不是一個下划線開頭:
function __construct(){
$this->open_connection();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.