Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wielokrotny insert z obsług± błędów
Forum PHP.pl > Forum > Bazy danych > MySQL
marcinj
Witam.
Mam trzy tabele: `dokument`, droga_dokumentu`, `adres_wydawniczy` potrzebuję zapisać do nich dane z formularza - ale w taki sposób aby bł±d w zapisie do jednej z tabel uniemożliwił zapis do pozostałych dwóch. Mam nadzieję, że jest to zrozumiałe. Wiem ,że trzeba stosować trzy zapytania [php:1:1f69b63d9a]mysql_query();[/php:1:1f69b63d9a] ale jak napisać w miarę elegancko warunki questionmark.gif?
Dzięki za wszelkie sugestie - pozdr. Marcin J. :wink:
spenalzo
[php:1:b890f229b1]<?php
if(@mysql_query("zapytanie 1"))
{
if(@mysql_query("zapytanie 2"))
{
if(@mysql_query("zapytanie 3"))
{
echo "Dodano.";
}
}
}
?>[/php:1:b890f229b1]
BzikOS
Taa i tu przydałyby się tranzakcje smile.gif

@spenalzo: ładnie pięknie, tylko że jeszcze gdy 3 zapytanie nie powiedzie się to nalezy skasować 2 poprzednie winksmiley.jpg
enceladus
Dlatego lepiej zrobić to przy pomocy ADoDB - jak już stosujemy słab± bazę (bez transakcji) można zaemulować transakcje odpowiedni± klas±:
http://phplens.com/adodb/reference.functio...ansactions.html

Update:
Przykład:
[php:1:1dd07555a4]<?php
$DB->BeginTrans();
$ok = $DB->Execute("query 1");
if ($ok) $ok = $DB->Execute("query 2");
if ($ok) $ok = $DB->Execute("query 3");
if ($ok) $DB->CommitTrans();
else $DB->RollbackTrans();

?>[/php:1:1dd07555a4]
marcinj
Swietna sprawa ta biblioteka, ale niestety :? mam do dyspozycji php 4.0.0 i muszę czekać aż admin uaktualni php.
To jest wersja lo-fi głównej zawarto¶ci. Aby zobaczyć pełn± wersję z większ± zawarto¶ci±, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.