Intereting Posts
Как запустить скрипт PHP с помощью задачи расписания Windows? ZIP все файлы в каталоге и загрузка .zip сгенерирована Проверка портов с php написать форму в базу данных с помощью jquery Сообщение не работает в Ajax для сохранения ввода в базу данных Проблемы с добавлением поля в MySQL / PHP с помощью подготовленных операторов Проблемы с PHP GD с ImageCreateTrueColor и PNG Отправка данных с использованием POST в Python для PHP Выберите данные таблицы LIKE данных другой таблицы Хранение пути изображения в переменной сопоставить шаблон url в php с использованием регулярного выражения Если имена верхних регистров преобразуются в правильное дело, обрабатываются «О'Хара», «Макдональд», «Ван дер Слоут» и т. Д. Что означает «&» здесь в PHP? Каковы правильные кодировки / экранирование / htmlentities, необходимые при отправке данных из js в php, php в mysql и для ответов REST json Пропустить аутентификацию между приложением php и Ruby On Rails

Начало транзакции не определено

Начальная транзакция не определена в mysql. Im фактически использует его для запуска нескольких запросов в моем коде для перемещения строки из одной таблицы в другую. Большая помощь будет оценена. Хорошо, мой вопрос: почему мой Begin_transaction () не определен?

<?php If(isset($trade_id)){ $trade_id= $_GET['trade_id']; } require_once('connect.php'); $mysqli = new mysqli($database_hostname, $database_username, $database_password, $database_name) or exit("Error connecting to database"); try { // First of all, let's begin a transaction $mysqli->begin_transaction(); // A set of queries; if one fails, an exception should be thrown $mysqli->query("INSERT INTO `trade_history1` (session_id, trade_id, selection, date, type, size, bidprice, offerprice, stoploss, takeprofit, profitandloss, dateclose, close) SELECT session_id, trade_id, selection, date, type, size, bidprice, offerprice, stoploss, takeprofit, profitandloss, dateclose, close FROM `opentrades` WHERE `trade_id` = " . $tradeid); $mysqli->query("DELETE FROM `opentrades` WHERE `trade_id` = " . $trade_id); // If we arrive here, it means that no exception was thrown // ie no query has failed, and we can commit the transaction $mysqli->commit(); $_SESSION['message'] = 'Successfully deleted'; } catch (Exception $e) { // An exception has been thrown // We must rollback the transaction $_SESSION['message'] = 'Unable to delete'; $mysqli->rollback(); } $mysqli->close(); // if we successfully delete this, we if ($successfullyDeleted) { $_SESSION['message'] = 'Successfully deleted'; } else { $_SESSION['message'] = 'Unable to delete'; } header('Location: js.php'); ?> 

Solutions Collecting From Web of "Начало транзакции не определено"

PHP Manual говорит, что mysqli :: begin_transaction нуждается в PHP версии 5.5.0 или выше ( http://php.net/manual/en/mysqli.begin-transaction.php ).

Но вы можете использовать mysqli :: autocommit вместо этого ( http://php.net/manual/en/mysqli.autocommit.php ) с PHP 5.x :

 //Begin transaction $mysqli->autocommit(FALSE); ... //End transaction and auto commit $mysqli->autocommit(TRUE); 

$mysqli->begin_transaction(); должен быть $mysqli->autocommit(FALSE);

Проверь это

http://www.php.net/manual/en/mysqli.commit.php

Вы можете использовать этот код, который я тестировал.

Объектно-ориентированный стиль

 $cid->multi_query('start transaction;'); $cid->multi_query("insert into demo values('1','Pankaj','9031251290')"); $cid->multi_query('commit;'); 

Процедурный стиль

 mysqli_query($link, "start transaction;"); mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)"); mysqli_query($link, "commit;");