Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wielokrotny insert z obsługą błędów
marcinj
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 30.03.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
Dzięki za wszelkie sugestie - pozdr. Marcin J. :wink:
Go to the top of the page
+Quote Post
spenalzo
post
Post #2





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


[php:1:b890f229b1]<?php
if(@mysql_query("zapytanie 1"))
{
if(@mysql_query("zapytanie 2"))
{
if(@mysql_query("zapytanie 3"))
{
echo "Dodano.";
}
}
}
?>[/php:1:b890f229b1]
Go to the top of the page
+Quote Post
BzikOS
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

Ostrzeżenie: (0%)
-----


Taa i tu przydałyby się tranzakcje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

@spenalzo: ładnie pięknie, tylko że jeszcze gdy 3 zapytanie nie powiedzie się to nalezy skasować 2 poprzednie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
enceladus
post
Post #4





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 19.11.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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]
Go to the top of the page
+Quote Post
marcinj
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 30.03.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Swietna sprawa ta biblioteka, ale niestety :? mam do dyspozycji php 4.0.0 i muszę czekać aż admin uaktualni php.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.12.2025 - 02:08