Я хочу заблокировать таблицу с именем person
, используя пользователя.Я использую PHP и MySQL.Но когда я запускаю программу и проверяю show open tables
, используя MySQL в командной строке, поле In_Use
для моей таблицы все равно равно 0.Вот мой код
<?php
session_start();
$username = $_SESSION['username'];
$pass = $_SESSION['pass'];
$hostname = gethostname();
$host = gethostbyname($hostname);
$db = "tugas";
$conn = mysqli_connect($host, $username, $pass, $db);
// check if the table have a lock
$sql = mysqli_query($conn, "SHOW OPEN TABLES;");
while($data = mysqli_fetch_array($sql)){
if($data['Table'] == "person" && $data['In_use'] > 0){ //locked
echo '<script language="javascript">';
echo 'alert("Table is in use");
window.location.href="view.php";';
echo '</script>';
die();
}
}
$query = "LOCK TABLE PERSON READ";
$sql = mysqli_query($conn, $query);
?>
Но когда я блокирую таблицы одной и той же командой через CMD и используя root, это работает.MySQL Engine - это MariaDB.