Ваш код будет работать нормально:
mysql_query(...) or throw new Exception("Failed to run query");
Но он использует сокращение, которое не совсем понятно. Я лично думаю, что вам лучше пожертвовать краткостью ради ясности:
if (false === mysql_query(...)) {
throw new Exception("Failed to run query.");
}
Имейте в виду, что создание исключений полезно только в том случае, если вы их где-то ловите, и в вашем случае вы, вероятно, захотите использовать пользовательское исключение:
class DatabaseException extends Exception {}
try {
if (false === mysql_query(...)) {
throw new DatabaseException("Failed to run query.");
}
} catch (DatabaseException $e) {
$logger->log("Database exception: " . $e->getMessage());
}
Надеюсь, это поможет!