我在使用 Joomla! API 开发的代码中使用了 mysql mysql_real_escape_string($somevariable)。一切都运行良好,除了这个问题显示错误。
mysql_real_escape_string(): Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/JOOMLA/components/com_quiz/models/questions.php
我在互联网上搜索并得到了以下解决方案:创建一个$con=mysql_connect(....);
并将其作为第二个参数传递mysql_real_escape_string($somevariable,$con)
,该参数工作正常。
问题是我在代码中的每一个地方都在使用 Joomla API。那么我可以为此使用默认的 Joomla db 对象$db =& JFactory::getDBO();
吗?
基本上我想要类似的东西 $db =& JFactory::getDBO();
mysql_real_escape_string($somevariable,$db)
但它显示错误: mysql_real_escape_string() expects parameter 2 to be resource, object given in /var/www/JOOMLA/components/com_quiz/models/questions.php on line 85
谢谢。
如果你使用Joomla数据库对象来做查询,你为什么要使用mysql库的转义函数?你不需要。遵循此Joomla wiki条目,该条目向您展示如何使用其DBO创建正确转义的SQL查询。
改用 $db->quote($somevariable);