gpt4 book ai didi

php - 防止 MySQL 因最大用户连接而处于停机状态

转载 作者:行者123 更新时间:2023-11-29 11:43:35 25 4
gpt4 key购买 nike

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

每次用户刷新页面时,mysql都会连接,获取一些数据,返回数据并关闭连接(这样用户就可以保持最新状态)。它有一个问题,因为我厌倦了在我的网站上进行垃圾邮件刷新,并且在一小时内 25.000 个 mysql 连接之后,我的页面将关闭一个小时,因为我的托管提供商将 mysql_max_connection 等于 25.000。我在那里只有一个 MySQL 帐户,因此无法切换到任何其他帐户。

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

我想问是否有任何方法可以在 PDO 或任何其他 PHP/MySQL 函数中阻止它,或者一些商业网站(例如 facebook 等)是如何做到的。谢谢您的建议。

最佳答案

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

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

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

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

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

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

关于php - 防止 MySQL 因最大用户连接而处于停机状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35341754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com