Почему я получаю сообщение «нет активной транзакции»?

Я строю веб-сайт, который должен вставить ввод, вставленный из листа Excel, в 2 таблицы HTML. Я хочу сделать это с транзакцией, но получаю сообщение, что транзакции нет.
Я изучил много тем, но не могу найти ответ
Что мне здесь не хватает?

Вставьте метод:

    $DBconn = new DatabaseController();
$DBconn->connect()->beginTransaction();
try {



$sql = "insert into sw_krw (sw1, krw) values (:sw1, :krw)";
$stmt = $DBconn->connect()->prepare($sql);
$stmt->bindParam(':sw1', $this->sw1);
$stmt->bindParam(':krw', $this->krw);
foreach ($_POST['sw1'] as $key => $value) {
if (!empty($_POST['sw1'][$key]) && ($_POST['krw'][$key])) {
$this->sw1 = $_POST['sw1'][$key];
$this->krw = $_POST['krw'][$key];
print_r($this->sw1);
print_r($this->krw);
$stmt->execute();
}
}

$sql = "insert into sw_kro (sw2, kro) values  (:sw2, :kro)";
$stmt = $DBconn->connect()->prepare($sql);
$stmt->bindParam(':sw2', $this->sw2);
$stmt->bindParam(':kro', $this->kro);
foreach ($_POST['sw2'] as $key => $value) {
if (!empty($_POST['sw2'][$key]) && ($_POST['kro'][$key])) {
$this->sw2 = $_POST['sw2'][$key];
$this->kro = $_POST['kro'][$key];
$stmt->execute();
}
}

$DBconn->connect()->commit();

echo "<script type= 'text/javascript'>alert('New Record Inserted Successfully');</script>";
} catch (Exception $e) {
$DBconn->connect()->rollBack();
echo $e->getMessage();
echo "<script type= 'text/javascript'>alert('Data not successfully Inserted.');</script>";
}
return false;

}
}

класс databasecontroller:

class DatabaseController
{
private $servername;
private $username;
private $password;
private $dbname;

public function connect()
{
$this->servername = "localhost";
$this->username = "root";
$this->password = "";
$this->dbname = "scores";

try {
$dsn = "mysql:host=" . $this->servername . ";dbname=" . $this->dbname;
$pdo = new PDO($dsn, $this->username, $this->password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

return $pdo;
} catch (Exception $e) {
echo "Connection failed: " . $e->getMessage();

}
return $e;
}

}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]