記入日:2023-03-31 編集日:2023-03-31
PHP PDOを使用してトランザクションを利用し、複数のデータベースへの接続
この記事を読むと(約5分)
PHP PDOを使用してトランザクションを利用し、複数のデータベースへの接続する方法に関して、使用方法がイメージできます。
以下がコードの例です。
// データベース接続情報
$db1_host = 'localhost';
$db1_name = 'database1';
$db1_user = 'user1';
$db1_pass = 'pass1';
$db2_host = 'localhost';
$db2_name = 'database2';
$db2_user = 'user2';
$db2_pass = 'pass2';
try {
// データベース1への接続
$db1 = new PDO("mysql:host=$db1_host;dbname=$db1_name", $db1_user, $db1_pass);
$db1->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// データベース2への接続
$db2 = new PDO("mysql:host=$db2_host;dbname=$db2_name", $db2_user, $db2_pass);
$db2->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// トランザクション開始
$db1->beginTransaction();
$db2->beginTransaction();
// データベース1の処理
$stmt1 = $db1->prepare("INSERT INTO table1 (col1, col2) VALUES (?, ?)");
$stmt1->execute(array('value1', 'value2'));
// データベース2の処理
$stmt2 = $db2->prepare("UPDATE table2 SET col1 = ? WHERE col2 = ?");
$stmt2->execute(array('new_value', 'target_value'));
// トランザクションのコミット
$db1->commit();
$db2->commit();
} catch(PDOException $e) {
// トランザクションのロールバック
$db1->rollBack();
$db2->rollBack();
// エラーメッセージの表示
echo "Error: " . $e->getMessage();
}
// データベース接続の切断
$db1 = null;
$db2 = null;
このコードでは、まずPDOを使用してデータベース1とデータベース2に接続します。それぞれのデータベースに対してトランザクションを開始し、それぞれの処理を行います。最後に、トランザクションをコミットしてデータベース接続を切断します。トランザクション中にエラーが発生した場合は、トランザクションをロールバックし、エラーメッセージを表示します。
SQLの使いどころ
サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。
SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。
また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。
KK
機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。