Lock mysql table with php

If you do not want others to access that table then use

LOCK TABLES test1 WRITE;

Other script will not return error but will wait until lock is released.

Hope it helps...


You are read locking the table with $query_ = "lock tables test1 as test11 read";- which means that other queries can still read it without any problems what-so-ever (Relevant link - scroll down to the section on lock types):

Info on the read lock type:

  • The session that holds the lock can read the table (but not write it).
  • Multiple sessions can acquire a READ lock for the table at the same time.
  • Other sessions can read the table without explicitly acquiring a READ lock.

If you want to stop anything else so much as reding the table, you need to use a write lock as follows:

$query_ = "lock tables test1 as test11 write";

You have to grant the rights of lock tables to the db user.

Tags:

Mysql

Php

Locking