Обработка ошибок и транзакций с помощью многопользовательского запроса mysqli - PullRequest
0 голосов
/ 09 ноября 2018

Я работаю над своим первым приложением php / mysql и хотел проверить, правильно ли я реализовал транзакцию с использованием mysqli. Мой код на данный момент:

        $con_post = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
        $sql_query = 'Variable list of sql statements';

        if ($con_post)
        {
            mysqli_begin_transaction($con_post);
            mysqli_multi_query($con_post, $sql_query);

            if (mysqli_error($con_post))
            { 
                mysqli_rollback($con_post);
            }
            else
            { 
                mysqli_commit($con_post); 
                deliverResponse(200, "Success", true);
            }

            mysqli_close($con_post);
        }
        else
        {
            deliverResponse(503, "Error: Cannot connect to database", NULL);
        }

То, чего я пытаюсь достичь, это:

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

Спасибо

...