首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql_real_escape_string未定义

问mysql_real_escape_string未定义
EN

Stack Overflow用户
提问于 2012-12-13 17:20:42
回答 5查看 71.3K关注 0票数 12

我正在使用PHP5.3版本,并试图在我的代码中使用mysql_real_escape_string($unescaped_string),但是我得到了错误:

代码语言:javascript
复制
Fatal error: Call to undefined function mysql_real_escape_string() 
in /var/www/engine/database.php on line 38

不过,我仍然可以连接到数据库。为什么它不可用?

我使用的是PHP版本5.3。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-12-13 17:24:07

更新正如在comment中提到的,mysql_已被deprecated since 5.5

从PHP5.5开始就不推荐使用mysql扩展。应该使用mysqli或PDO扩展名。在mysql_deprecation中已经决定了弃用,在那里可以找到这个决定背后的原因的讨论。

在PHP7中删除了。

mysql_real_escape_string()是MySQL function "batch"的标准部分,如果扩展被正确加载,它应该始终正常工作。

还有没有其他mysql_函数可以使用?(它不应该)

确保您的php.ini中没有注释此行

代码语言:javascript
复制
extension=mysql.so

另外,明智的做法是使用mysqli或PDO (mysql_ is deprecated),它们都可以为您解决转义问题。

票数 18
EN

Stack Overflow用户

发布于 2018-04-02 18:14:01

在我的例子中,我使用了mysqli_real_escape_string而不是mysql_real_escape_string。

票数 7
EN

Stack Overflow用户

发布于 2015-07-24 16:49:06

有趣的是,在探索了这里的所有其他解决方案后,我意识到这个问题实际上是由于php5-mysql扩展还没有安装-它不是默认安装在新的Ubuntu上,也不是当你安装新的php时。因此,对我来说,解决方案是:安装php5-mysql扩展:

代码语言:javascript
复制
sudo apt-get install php5-mysql

在此之后,我不再收到那些讨厌的mysql_*错误;-)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13856639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档