gpt4 book ai didi

php - 全局禁用所有 MySQL 写入

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

我正在使用 PHP 的 PDO 和 MySQL 创建一个网络应用程序。我希望将 Web 应用程序置于“演示”模式。这意味着所有写入(更新、插入、删除)都被禁用,并且适用的操作继续进行,没有任何错误。为了便于讨论,如果 $_SESSION['demo_mode']=1,则应用程序处于演示模式。如果不在每个写入语句周围放置条件,如何做到这一点。

$dbh->exec("INSERT INTO t1(c1, c2) VALUES ('v1', 'v2')");
$dbh->lastInsertId();
$q=$dbh->query("SELECT c1 FROM t2 WHERE c2=123");
$v=$q->fetchColumn();

最佳答案

您可以修改应用程序连接的用户的权限,使其仅获得 SELECT 和类似的权限。

这是 comprehensive list of individual rights您可以授予用户。

示例(当然要根据您的需要进行调整):

REVOKE ALL PRIVILEGES ON yourdatabase.* FROM 'application_user'@'host';
GRANT SELECT ON yourdatabase.* TO 'application_user'@'host';

显然,当您的应用程序尝试写入任何内容时,这会产生错误。如果您打算将其用于演示,您的应用应该准备好优雅地失败 ;)

关于php - 全局禁用所有 MySQL 写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18105414/

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