記入日: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化のディレクションなどを行っています。