Intereting Posts
FFMPEG: добавьте изображение фиксированного размера на видео, независимо от ширины и высоты видео (разрешение) Как найти IP-адрес моего сервера в PHP (CLI) Обновление силового кэша после развертывания как установить id элемента с помощью PHP dom? Должны ли выполняться подготовленные PHP PDO заявления? Использование проверки ядра в пользовательской проверке на CakePHP Forms / Models? Как экспортировать исходный контент в div в файл text / html как увеличить значение переменной на 1 для каждой записи с помощью php mysql LOAD DATA INFILE Как я могу подсчитать общее количество всех комментариев и комментариев к каждому объекту на странице facebook? PHP Использование fgetcsv в огромном файле csv Устаревшее: функция eregi () – это устаревшая контактная форма Ошибка обновления композитора при обновлении из пакета PHP Mailer. Нажав кнопку send, загрузите скрипт php, но не отправляйте почту Как защитить веб-сайт от массового выскабливания / загрузки? Динамическая загрузка контента с помощью Ajax

Делает ли mysql_query все

Я использую расширение mysql в php, я знаю, что он устарел от PHP 5.5.0, но у меня есть много кода, уже написанных с использованием этого расширения. Мне кажется, что mysql_query совершает запрос, если это означает, что он установлен в autocomit, как настроить, чтобы он не автокомитировал.

Solutions Collecting From Web of "Делает ли mysql_query все"

У старого расширения mysql нет функций, специально предназначенных для управления транзакциями, но вы можете выдавать SQL-запросы, чтобы делать то, что вы хотите.

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

mysql_query("START TRANSACTION"); 

Как только вы COMMIT или ROLLBACK, режим autocommit вернется к умолчанию.

 mysql_query("COMMIT"); // or ROLLBACK 

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

 mysql_query("SET autocommit=0"); 

Или измените его по всему миру на вашем экземпляре MySQL, чтобы он изменил значение по умолчанию для всех сеансов:

 mysql_query("SET GLOBAL autocommit=0"); 

Или установите для изменения глобального параметра при запуске службы MySQL, отредактировав файл /etc/my.cnf:

 [mysqld] autocommit=0 

Если вы используете MySQL 5.1, вам нужно сделать это несколько иначе:

 [mysqld] init_connect='SET autocommit=0' 

Вы, наверное, уже знаете, но повторяет, что транзакции означают только что-либо, если вы используете таблицы InnoDB. Таблицы MyISAM не поддерживают транзакции, поэтому они всегда автономны, независимо от ваших настроек. То же самое с несколькими другими системами хранения, включая MEMORY и CSV.