【问题标题】:How do i solve this error? Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead [closed]我该如何解决这个错误?已弃用:mysql_escape_string():此函数已弃用;改用 mysql_real_escape_string() [关闭]
【发布时间】:2014-05-18 17:48:48
【问题描述】:

我遇到以下问题:

已弃用: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 但这并不能解决问题。 并且通过 .htacces 文件忽略 php 错误消息也不起作用

【问题讨论】:

  • 你在“else”中也修复了吗?
  • 那我估计是要切换了。确保所有代码中的所有mysql_ 实例(包括数据库连接)都已更改为mysqli_

标签: php mysql sql string escaping


【解决方案1】:

错误信息清楚地说明了。

改变这个

 else return mysql_escape_string($source); // you are using mysql here

 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 个在:等中给出。在第 116 行。我如何切换到 PDO?
  • 检查我编辑的答案。
  • OP 应该显示完整的代码,包括数据库连接。除非您的手指抽筋,否则您将对其进行编辑。 “答案”就在my comment
  • 哈哈哈你说得对:),我要删除我的答案,因为我被吸了:)
  • 你现在认识我了。当我看不到全貌时,我从不回答;-)
【解决方案2】:

在使用mysql_real_escape_string之前需要先连接mysql到数据库,这个功能在mysql没有连接数据库的情况下不起作用。

【讨论】:

  • 不,那是 mysqli_,不是 mysql。
猜你喜欢
  • 1970-01-01
  • 2015-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多