Самый простой путь сделать колонку в базе = lok - выбирать с лок 0 и сразу лочить 1, по окончанию возвращать в 0.
Так как это не банковские операции и конкуренция не очень дикая, то в большинстве случаев этого будет достаточно.
Разобрался.
Проблема была не в последнем запросе, а в том, что в скрипте присутствует многопоточная функция, и в нее не передавалась нужная переменная (стояла обычная вместо глобальной).
При этом лог "отставал" и не показывал реальную ошибку. Проблему удалось вычислить зайдя в папку Баса в текстовый файл с логами, после вылета.