"प्रारंभ ट्रांज़ेक्शन" कॉल करने के बाद बस "निष्पादित करें" को कॉल करें।
जहां आप "तैयार" कहते हैं, वास्तव में कोई फर्क नहीं पड़ता।
यहां एक पूरा उदाहरण दिया गया है:
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";
}
पीएस:1) मैं निश्चित रूप से मान रहा हूं कि $user_input और $user_input_2 तुरंत उपलब्ध हैं। आप नहीं चाहते कि आपका लेन-देन अनावश्यक रूप से लंबे समय तक खुला रहे;)
2) उपरोक्त आपकी टिप्पणी के जवाब के आधार पर, मुझे लगता है कि आप "निष्पादित" और "ट्रान/प्रतिबद्ध" भ्रमित हो सकते हैं। कृपया मेरा लिंक देखें।
3) क्या आपको भी जरूरत एक लेनदेन? आप बस दो "चुनिंदा" कर रहे हैं।
4) अंत में, दो "सेलेक्ट्स" के बजाय एक "जॉइन" (या यूनियन, यदि संगत हो) क्यों न करें?