Вам нужно передать объект и метод вместе как массив:
call_user_func(array($Player, 'SayHi'));
См. обратные вызовы , в частности:
// Type 3: Object method call
$obj = new MyClass();
call_user_func(array($obj, 'myCallbackMethod'));
Операторы SQL являются атомарными. То есть, если вы выполните что-то вроде этого:
UPDATE Cars SET Sold = Sold + 1
Во время этого утверждения никто не может изменить переменную Sold
.
Проблема возникает, если у вас есть утверждения, которые зависят друг от друга:
a = SELECT Sold FROM Cars;
UPDATE Cars SET Sold = a + 1;
Между этими запросы, другой пользователь может изменить таблицу Cars и обновить Продано. Чтобы предотвратить это, заверните его в транзакцию:
BEGIN;
a = SELECT Sold FROM Cars;
UPDATE Cars SET Sold = a + 1;
COMMIT;
Транзакции поддерживаются InnoDB, но не MyISAM.