[英]Trying to use mysqli_real_escape_string with a OOP connection attribute, but its giving a warning
我正在尝试使用OOP PHP,这是我用于启动数据库连接的代码:
这是lynda turorial的一部分。 但是在本教程中,导师正在使用mysql函数,这些函数给出了已弃用的消息,因此我尝试将所有这些都转换为mysqli,但是函数mysqli_real_escape_string()给出了警告。
警告:mysqli_escape_string()期望参数1为mysqli,在第38行的{file path}中给定null。
我不知道这是什么问题,我以前在程序形式中使用过此功能,但是在OOP中,它无法正常工作。 感谢所有帮助,谢谢。
<?php
require_once("config.php");
class MySQLDatabase{
private $connection;
function __contruct(){
$this->open_connection();
}
public function open_connection(){
$this->connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
if(mysqli_connect_errno()){
die("Database connection failed: " . mysqli_connect_error());
}
}
public function close_connection(){
if(isset($this->connection)){
mysqli_close($this->connection);
unset($this->connection);
}
}
public function query($sql){
$result = mysql_query($sql, $this->connection);
if(!$result){
die("Database Query Failed: " . mysql_error());
}
return $result;
}
function mysql_prep($value){
$magic_quotes_active = get_magic_quotes_gpc();
if($magic_quotes_active){
$value = stripslashes($value);
}
$value = mysqli_real_escape_string($this->connection, $value);
return $value;
}
private function confirm_query($result_set){
if(!$result_set){
die("Database Query Failed: " . mysql_error());
}
}
}
$database = new MySQLDatabase();
?>
配置文件为:
<?php
//Database Constants
defined('DB_SERVER') ? NULL : define("DB_SERVER", "localhost");
defined('DB_USER') ? NULL : define("DB_USER", "root");
defined('DB_PASS') ? NULL : define("DB_PASS", "");
defined('DB_NAME') ? NULL : define("DB_NAME", "photo_gallery");
?>
我正在尝试运行的文件:
if(isset($database)){
echo "true";
} else{
echo"false";
}
echo "<br>";
echo $database->mysql_prep("It's Working?<br>");
?>
您在构造函数名称中有一个错字(因此在创建MySQLDatabase实例时不会在代码中调用它)。 它应该是:
function __construct(){
$this->open_connection();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.