Below code i just not add third parameter in fQuery
statement , second query is correct. but as i understand that transaction provide Atomicity if first query is failed than second should not be executed but in my code first query give error & second query executed successfully.
$db = new PDO("mysql:host=127.0.0.1;dbname=stock",'root','') ;
$name = 'name' ;
$mobile = 1234567890 ;
$email = 'email@gmail.com' ;
try {
$db->beginTransaction();
$fQuery = "INSERT INTO investor (name,mobile,email) values (:n,:m,:e) " ;
$fstmt = $db->prepare($fQuery) ;
$fstmt->execute([':n'=>$name,':m'=>$mobile]);
$sQuery = "INSERT INTO testing (name) values (:e) " ;
$sstmt = $db->prepare($sQuery) ;
$sstmt->execute([':e'=>$email]);
$db->commit();
} catch (Exception $e) {
$db->rollBack();
echo "Failed: " . $e->getMessage();
}