我想使用用户锁定名为person
的表。我正在使用PHP和MySQL。但是,当我执行程序并在命令提示符下使用MySQL检查show open tables
时,表的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引擎是MariaDB。