如何解决此错误?已弃用:mysql_escape_string():该函数已被弃用,请改用mysql_real_escape_string()。

3
我遇到了以下问题:

已弃用:mysql_escape_string():此函数已弃用;请使用mysql_real_escape_string()代替。位于/home/xtremeso/public_html/mp3/includes/class/_class_mysql.php的第116行。

        function safesql( $source )
        {
            if ($this->db_id) return mysqli_real_escape_string ($this->db_id, $source);
            else return mysql_escape_string($source);
        }

我已经尝试使用mysql_escape_real_string,但这并没有解决问题。通过.htaccess文件忽略php错误消息也无法解决问题。


你在“else”中也修复了它吗? - Tamim Al Manaseer
我猜现在是时候进行切换了。请确保您代码中所有包括数据库连接的 mysql_ 实例都已更改为 mysqli_ - Funk Forty Niner
2个回答

5
错误信息清楚地表明了这一点。
更改此内容。
 else return mysql_escape_string($source); // you are using mysql here

to

 else return mysqli_real_escape_string($source); //will be mysqli

OBS: 你应该切换到PDO或MYSQLI,因为MYSQL的mysql_real_escape_string也将被弃用 :)

你混淆了mysqli和mysql。

编辑:根据你的第二个错误。

  mysqli_real_escape_string ($link ,$source )  // $link is your connection variable

ref


当我进行更改时,确实又出现了一个错误信息。现在我得到了这个错误:警告:mysqli_real_escape_string()函数需要2个参数,但只提供了1个参数,位于etc..的第116行。我该如何切换到PDO? - FlikFlak
OP 应该展示包括数据库连接的完整代码。除非你的手指抽筋,否则你将进行编辑。 "答案" 在 我的评论 中。 - Funk Forty Niner
你现在应该已经了解我了。当我没有看到整个画面时,我从不随意给出答案;-) - Funk Forty Niner
@Fred-ii- 是的,最好不要编辑1000次 :)。 - echo_Me
当我切换到您编辑的帖子时,现在出现了这个错误:警告:mysqli_real_escape_string()期望恰好1个参数,要mysqli null放在etc..第116行。 - FlikFlak
显示剩余5条评论

1

在使用mysql_real_escape_string之前,您需要将MySQL连接到数据库,否则此函数无法正常工作。


1
不是mysql,而是mysqli_。 - Mave

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