Mysql не может заблокировать таблицы с помощью Mysqli - PullRequest
0 голосов
/ 29 декабря 2018

Я хочу заблокировать таблицу с именем 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...