Как написать транзакцию Zend DB - PullRequest
1 голос
/ 01 декабря 2011

Что-то не так с моим кодом. Когда я попытался выполнить, он не показывает никакой ошибки, но также не удаляет из базы данных.

function delete(){
try {
require('/inc/connect.php');
$publicId = $_POST["publicId"];
$select = $db->select()
    ->from('test', '*')
    ->where('test_public_id = ?', $publicId);
$checkedPublicId = $db->fetchRow($select);
if(!$checkedPublicId){
    throw new Exception("No tour with that id was found");
}
$testId = $checkedPublicId['test_id'];
$db->beginTransaction();
$sql1 = $db -> query ("DELETE FROM folder_test WHERE test_id ='.$testId.'");
$sql2 = $db -> query ("DELETE FROM image WHERE test_id ='.$testId.'");
$sql3 = $db -> query ("DELETE FROM test_shares WHERE test_id ='.$testId.'");
$sql4 = $db -> query ("DELETE FROM test_stats WHERE test_public_id ='.$publicId.'");
$sql5 = $db -> query ("DELETE FROM slides WHERE test_id ='.$testId.'");
$sql6 = $db -> query ("DELETE FROM test WHERE test_public_id ='.$publicId.'");
$query = $db->commit();
}
catch(Exception $e) {
    $db->rollBack();
    throw new Exception($e);
}
}

1 Ответ

2 голосов
/ 01 декабря 2011

Ваши запросы не работают.

$sql1 = $db -> query ('DELETE FROM folder_test WHERE test_id ='.$testId);
$sql2 = $db -> query ('DELETE FROM image WHERE test_id ='.$testId);
$sql3 = $db -> query ('DELETE FROM test_shares WHERE test_id ='.$testId);
$sql4 = $db -> query ('DELETE FROM test_stats WHERE test_public_id ='. $db -> quote($publicId));
$sql5 = $db -> query ('DELETE FROM slides WHERE test_id ='.$testId);
$sql6 = $db -> query ('DELETE FROM test WHERE test_public_id ='. $db -> quote($publicId));
...