ost.bregin2014 написав:$user = "select * from `users` where user_id='$user_id' AND posts='yes'" or die('error mysqli2');
or - логічна операція АБО - в багатьох МП, зокрема в PHP, виконується скорочено: якщо перший аргумент істинний, то сенсу перевіряти (обчислювати) другий немає, бо весь вираз буде істинним. Те саме і для and - якщо перший аргумент хибний, то другий не буде обчислено. Таким чином, запис
буде перевіряти значення $a, і якщо воно істинне (чи може бути перетворене на істинне) поверне його, а якщо воно хибне (чи може бути перетворене на хибне), спробує виконати die() і завершить виконання. Фактично це - скорочений запис від чогось такого:
if( !$a ){
die();
} else {
$x = $a;
}
Загалом, форма or die() - це дешевий і сердитий спосіб контролю помилок функцій, що повертають False при помилці, але в серйозному коді його варто уникати. Ну а конкретно в цьому рядку це безглуздо - непустий рядок (гаразд, і не '0') буде давати True і друга половина не спрацює ніколи.
Якщо ви із цим не розібралися - краще пишіть розгорнуто.