我有一个不允许我向用户授予权限的虚拟主机。 所以我只有一个可用的用户,具有SELECT / UPDATE / DELETE权限。
我使用PHP MySQLi
连接到MySQL。
有没有办法告诉MySQL(数据库本身)或MySQLi
(PHP对象)仅禁止当前会话的更新/删除?
目标是拥有这种代码:
$mysqli = new mysqli(MYSQLI_IP, MYSQLI_USER, MYSQLI_PASSWORD,n MYSQLI_DBNAME);
// I have SELECT privileges so it works
$mysqli->query('SELECT * FROM `table`');
// This should work too because I have UPDATE privilege
$mysqli->query('UPDATE `table` SET `date`=NOW()');
// This is the "command" I'm looking for
$mysqli->disallowUpdates();
// Ok, it still works
$mysqli->query('SELECT * FROM `table`');
// This must not work because I told mysqli (php)/mysql (db)
// to disallow updates for this session
$mysqli->query('UPDATE `table` SET `date`=NULL');
答案 0 :(得分:2)
你不能以任何方式提到这一点。你需要自己做这个逻辑,例如:
在某些条件下授予或不允许:
session_start();
$_SESSION['isAllowedToUpdate'] = false;
做更新:
if (isset($_SESSION['isAllowedToUpdate']) && $_SESSION['isAllowedToUpdate']) {
// do some updates
}