Я строю веб-сайт, который должен вставить ввод, вставленный из листа 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;
}
}
Задача ещё не решена.
Других решений пока нет …