过时的函数:mysql_real_escape_string():mysql扩展已过时并将来会被移除:请使用mysqli或PDO。

6

我正在寻找mysql_real_escape_string的替代方案来解决这个错误。在php 5.4中它完美地工作,但在php 5.5中不再有效。

$this->mysqli = new mysqli($this->host, $this->user, $this->pass, $this->name);
// in class user
public function __set($p_sProperty, $p_vValue)
        {   
            switch($p_sProperty)
            {    
// this is marked as the error
case "Email":
             $this->Email = **mysql_real_escape_string**($p_vValue); 
                break;
}
}

你不能混用 mysql_* 函数和 mysqli_* 函数... - War10ck
1
如果你正在寻找OP问题的快速答案,那么这是一个有效的问题:另一个问题(这被标记为重复)最终解决了这个问题,但它来自不同的问题并且相当复杂。 - Tom Auger
一个简单的替代方法是函数:addslashes例如:addslashes("带有双引号的字符串 ") - anlijudavid
1个回答

16
你正在使用MySQLi,所以请使用mysqli_real_escape_string()函数:
$this->Email = $this->mysqli->real_escape_string($p_vValue); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接