从最大用户连接防止MySQL关闭状态

时间:2016-02-11 14:17:39

标签: php mysql pdo

我有一个网站,我需要从mysql中获取数据并将其显示给用户。

每当用户刷新页面时,mysql将连接,获取som数据,返回它并关闭连接(因此用户可以是最新的)。 它有一个问题,因为我厌倦了在我的网站上垃圾邮件刷新,并且在小时后的25.000个mysql连接之后,我的页面将会停机一小时,因为我的托管服务提供商的mysql_max_connection等于25.000。 我只有一个MySQL帐户,所以我无法切换到任何其他帐户。

我在考虑使用PDO :: ATTR_PERSISTENT来建立持久连接,但是当用户回来时没有mysql_reset,所以我认为使用它不是一个好主意。

我想询问是否有任何方法可以在PDO或任何其他PHP / MySQL功能中阻止它,或者它是如何通过某些商业网站如facebook等完成的。 谢谢你的建议。

1 个答案:

答案 0 :(得分:1)

您可以在MySQL中限制每小时每用户的使用量: LINK SECURITY MYSQL

但是,大多数Web应用程序对所有应用程序用户使用单个MySQL用户名。所以这可能会限制整个网站。

addslashes函数不是防止SQL注入的正确解决方案。每个MySQL API都包含一个更合适的转义函数,例如mysqli_real_escape_string()PDO::quote()

但更好的方法是使用带有查询参数的预准备语句,而不是将变量转义并连接到SQL查询字符串中。

如果使用sql-injection标记检查其他问题,则很容易找到示例。最好的答案之一是 How can I prevent SQL-injection in PHP?

检查并尝试这些信息。祝你好运。