gpt4 book ai didi

PHP:为 2 个不同的数据库创建 2 个 PDO,一个阻止第二个

转载 作者:可可西里 更新时间:2023-11-01 08:45:45 25 4
gpt4 key购买 nike

我有 2 个数据库:1 个在 MySQL 中,另一个在 SQLite3 中。

我需要将相同的数据插入到两者中。为了通过表单实现这一点,我正在制作一个 PHP 脚本,它有一些问题。下面是代码,然后是对发生的事情的解释:

// MySQL
try {
$sql = new PDO($pdo_servername, $username, $password, $pdo_options);
$sql->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$ret = $sql->exec($query);
if(!$ret){
echo $sql->lastErrorMsg();
} else {
echo "New record created successfully on MySQL DB";
}
} catch (PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
$sql->close();



// SQLite
try {
$sqlite = new PDO($pdo_servername_sqlite3);
$sqlite->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$retlite = $sqlite->exec($query);
if(!$retlite){
echo $sqlite->lastErrorMsg();
} else {
echo "New record created successfully on SQLite3 DB";
}
} catch (PDOException $e) {
echo $sqlite . "<br>" . $e->getMessage();
}
$sqlite->close();

MySQL 运行良好,而 SQLite3 甚至无法启动。反转 block ,因此首先是 SQLite3,然后是 MySQL,问题是反转的:SQLite3 工作正常,MySQL 没有启动。我没有返回任何错误

我也尝试避免任何 try-catch-finally,我只是编写了尽可能简单的代码,但我遇到了同样的情况。是否禁止打开 2 个 PDO 连接到 2 个不同的数据库?请问我的错误在哪里?

最佳答案

尝试这种方式,这是您真正需要 try...catch 的唯一断点:

// MySQL
try {
$sql = new PDO($pdo_servername, $username, $password, $pdo_options);

} catch (PDOException $e) {
echo 'MySQL connection failed: ' . "<br>" . $e->getMessage();
$sql = false;
}

// SQLite
try {
$sqlite = new PDO($pdo_servername_sqlite3);
} catch (PDOException $e) {
echo 'SQLite connection failed: '. "<br>" . $e->getMessage();
$sqlite = false;
}

if ($sql != false) {
$ret = $sql->exec($query);
if(!$ret){
echo $sql->lastErrorMsg();
} else {
echo "New record created successfully on MySQL DB";
}
$sql->close();
}

if ($sqlite != false) {
$retlite = $sqlite->exec($query);
if(!$retlite){
echo $sqlite->lastErrorMsg();
} else {
echo "New record created successfully on SQLite3 DB";
}
$sqlite->close();
}

关于PHP:为 2 个不同的数据库创建 2 个 PDO,一个阻止第二个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29921233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com