「beginTransaction」を呼び出した後、「execute」を呼び出すだけです。
「準備」と呼ぶ場所は実際には重要ではありません。
完全な例は次のとおりです:
http://php.net/manual/en/pdo.begintransaction.php
例:
try {
$cnx = new PDO($dsn,$dbuser,$dbpass);
$cnx->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$cnx->beginTransaction();
$stmt=$cxn->prepare("SELECT * FROM users WHERE username=?");
$stmt->execute(array($user_input));
$stmt_2=$cxn->prepare("SELECT * FROM othertable WHERE some_column=?");
$stmt_2->execute(array($user_input_2));
$cnx->commit();
}
catch (Exception $e){
$cxn->rollback();
echo "an error has occurred";
}
PS:1)もちろん、$user_inputと$user_input_2はすぐに利用できると思います。トランザクションが不必要に長く開いたままになるのは望ましくありません;)
2)上記のコメントの返信から、「実行」と「トラン/コミットの開始」を混同しているのではないかと思います。私のリンクを見てください。
3)必要もありますか トランザクション? 2つの「選択」を実行しているだけです。
4)最後に、2つの「選択」の代わりに1つの「結合」(または互換性がある場合は結合)を実行してみませんか?