我正在使用PHP5.3版本,并试图在我的代码中使用mysql_real_escape_string($unescaped_string),但是我得到了错误:
Fatal error: Call to undefined function mysql_real_escape_string()
in /var/www/engine/database.php on line 38不过,我仍然可以连接到数据库。为什么它不可用?
我使用的是PHP版本5.3。
发布于 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中没有注释此行
extension=mysql.so另外,明智的做法是使用mysqli或PDO (mysql_ is deprecated),它们都可以为您解决转义问题。
发布于 2018-04-02 18:14:01
在我的例子中,我使用了mysqli_real_escape_string而不是mysql_real_escape_string。
发布于 2015-07-24 16:49:06
有趣的是,在探索了这里的所有其他解决方案后,我意识到这个问题实际上是由于php5-mysql扩展还没有安装-它不是默认安装在新的Ubuntu上,也不是当你安装新的php时。因此,对我来说,解决方案是:安装php5-mysql扩展:
sudo apt-get install php5-mysql在此之后,我不再收到那些讨厌的mysql_*错误;-)
https://stackoverflow.com/questions/13856639
复制相似问题