try catch и несколько операторов mysql insert. Будет ли он принимать все или отклонять все запросы?

Эй, у меня есть вопрос к вам, ребята. Если я реализую свою вставку sql mysql в try catch, это предотвратит выполнение только частичного INSERT в базу данных, если один из них не сработает?

try { //SQL INSET TABLE 1 //SQL INSET TABLE 2 //SQL INSET TABLE 3 //SQL INSET TABLE 4 } catch(Exception $e) {...} 

Я хотел бы отказать всем или принять все. Разве это так?

Что касается вашего комментария. Я использую PDO. Я был бы признателен за пример конфигурации, который позволит это.

В ваших комментариях вы часто рекомендуете транзакцию и откаты. Может ли кто-нибудь привести пример с некоторыми комментариями к коду? Икс

Я также хотел бы знать, есть ли альтернативные способы достижения этого эффекта.

@ РЕШЕНИЕ НАЙДЕНО: примеры транзакций PHP + MySQL :

 try { // First of all, let's begin a transaction $db->beginTransaction(); // A set of queries; if one fails, an exception should be thrown $db->query('first query'); $db->query('second query'); $db->query('third query'); // If we arrive here, it means that no exception was thrown // ie no query has failed, and we can commit the transaction $db->commit(); } catch (Exception $e) { // An exception has been thrown // We must rollback the transaction $db->rollback(); } 

Обратите внимание, что с этой идеей, если запрос не выполняется, необходимо исключить Исключение:

PDO может это сделать, в зависимости от того, как вы его настраиваете. См. PDO :: setAttribute и PDO :: ATTR_ERRMODE и PDO :: ERRMODE_EXCEPTION еще, с некоторым другим API, вам, возможно, придется проверить результат функции, используемой для выполнения запроса, и сделайте исключение самостоятельно.

К сожалению, магии нет. Вы не можете просто поместить инструкцию где-нибудь и выполнить транзакции автоматически: вам все равно нужно указать, какая группа запросов должна быть выполнена в транзакции.

Например, довольно часто у вас будет несколько запросов перед транзакцией (до начала) и еще одна пара запросов после транзакции (после фиксации или откат), и вы захотите, чтобы эти запросы выполнялись независимо от того, что произошло (или не) в транзакции.

ДРУГОЙ ПОЛЕЗНАЯ ССЫЛКА: транзакции PHP PDO?