MySQL and PHP
Copyright 1997-2021 the PHP Documentation Group.
CollectionFind::lockExclusive
Execute operation with EXCLUSIVE LOCK
public mysql_xdevapi\CollectionFind mysql_xdevapi\CollectionFind::lockExclusive(int lock_waiting_option);
Lock exclusively the document, other transactions are blocked from updating the document until the document is locked While the document is locked, other transactions are blocked from updating those docs, from doing SELECT ... LOCK IN SHARE MODE, or from reading the data in certain transaction isolation levels. Consistent reads ignore any locks set on the records that exist in the read view.
This feature is directly useful with the modify() command, to avoid concurrency problems. Basically, it serializes access to a row through row locking
lock_waiting_option
Optional waiting option. By default it is
MYSQLX_LOCK_DEFAULT
. Valid values are
these constants:
MYSQLX_LOCK_DEFAULT
MYSQLX_LOCK_NOWAIT
MYSQLX_LOCK_SKIP_LOCKED
Returns a CollectionFind object that can be used for further processing
Example 5.36 mysql_xdevapi\CollectionFind::lockExclusive
example
<?php $session = mysql_xdevapi\getSession("mysqlx://user:password@localhost"); $schema = $session->getSchema("addressbook"); $collection = $schema->createCollection("people"); $session->startTransaction(); $result = $collection ->find("age > 50") ->lockExclusive() ->execute(); // ... do an operation on the object // Complete the transaction and unlock the document $session->commit(); ?>