这是我面临的一个奇怪的问题,我的本地机器运行php 5.6.3而实时服务器运行php 5.4。我们最近将我们的应用程序从codeigniter 2. *更新为codeingiter 3.0,现在在实时服务器上运行时,我们开始了解这个全新的问题(较旧的问题,但仍无法正常工作smtp)
遇到PHP错误
严重程度:8192
消息:mysql_escape_string():不推荐使用此函数;改为使用mysql_real_escape_string()。
文件名:mysql / mysql_driver.php
行号:319
现在,在进行了一些谷歌搜索后,我发现顶级解决方案might be for ci 2.*无法正常工作,因为codeigniter的mysql_drivers.php
文件已在使用mysql_real_escape_string()
。一个答案是建议我检查database.php
文件。如果我的默认连接是mysql
而不是mysqli
mysqli
,那么我现在无法找出问题或我错过的内容。< / p>
答案 0 :(得分:1)
PHP mysql
驱动程序已弃用。
见http://php.net/manual/en/intro.mysql.php
所以你最好不要使用它。使用mysqli
。
mysql/mysql_driver.php
上的第319行:
https://github.com/bcit-ci/CodeIgniter/blob/3fe79499c5bedb5b3bc4281821776f031f73674e/system/database/drivers/mysql/mysql_driver.php#L319
没有mysql_escape_string()
。您似乎没有正确更新到3.0。
答案 1 :(得分:0)
要解决您的问题,请使用mysqli_real_escape_string()
关于mysql_escape_string()
警告:强>
此函数在PHP 4.3.0中已弃用,将来将删除整个原始MySQL扩展。相反,应该使用MySQLi或PDO_MySQL扩展。另请参阅MySQL:选择API指南和相关的常见问题解答以获取更多信息。该功能的替代方案包括:
mysqli_escape_string()
PDO::quote()
关于mysql_real_escape_string()
警告:强>
自PHP 5.5.0起,此扩展已弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展。另请参阅MySQL:选择API指南和相关的常见问题解答以获取更多信息。该功能的替代方案包括:
mysqli_real_escape_string()
PDO::quote()