Le chiamate di funzione possono verificarsi all'interno di un blocco di transazione PDO? Questo codice è semplificato (utilizzando database MySql) ...Transazioni PDO e chiamate di funzioni
try{
$db->beginTransaction();
// call to function that creates user
$user_id = create_user();
// call to function that creates company
$company_id = create_company();
// call to function to link user & company
add_user_to_company($user_id, $company_id);
$db->commit();
}
Se questo non può accadere con le transazioni, qual è la strategia raccomandata?
Per chiarire ulteriormente, le transazioni nidificate non sono supportate in MySQL, in modo da essere sicuri che non stai iniziando una transazione all'interno di qualsiasi delle funzioni, altrimenti si [commit automaticamente la transazione in sospeso] (http: //dev.mysql .com/doc/refman/5.5/it/implicita-commit.html). –
Assicuratevi inoltre di non usare alcun tipo di DDL (create/alter/drop statement) perché commetteranno qualsiasi transazione in corso. – Kris