Script 1.Khóa mysql bảng với php
$query_ = "lock tables test1 as test11 write";
mysql_query($query);
$query_ = "select * from test11";
sleep(20);
$query_ = "unlock tables";
mysql_query($query_);
Script 2.
$query_ = "select * from test1";
$result = mysql_query($query_);
Vấn đề là nếu tôi chạy kịch bản thứ hai trong khi chạy kịch bản đầu tiên. Bảng không bị khóa. Và tôi có thể đọc bất kỳ dữ liệu nào từ nó.
Tôi cần nó bị khóa và trả lại lỗi.
Cách thực hiện công việc này?
Nó có thể không giúp trả lời câu hỏi của bạn, nhưng bạn nên ngừng sử dụng các hàm 'mysql_ *'. Chúng không được chấp nhận. Thay vào đó hãy sử dụng [PDO] (http://php.net/manual/en/book.pdo.php) (được hỗ trợ từ PHP 5.1) hoặc [mysqli] (http://php.net/manual/en/book. mysqli.php) (được hỗ trợ từ PHP 4.1). Nếu bạn không chắc chắn nên sử dụng cái nào, hãy đọc bài viết này (http://www.deprecatedphp.com/mysql_/). – Matt
Tôi tin rằng bảng sẽ chỉ bị khóa cho trường hợp kết nối mysql cụ thể đó. Tôi nghĩ rằng nó hoạt động theo cách này để ngăn chặn điều kiện chủng tộc. – Travesty3
ý nghĩa của việc khóa nó cho kết nối mysql cụ thể là gì? Tại sao kịch bản của tôi muốn chèn một cái gì đó khi tôi không chèn bất cứ điều gì? –