<?php //------------------->ROZPOCZCIE TRANSAKCJI $query = \"BEGIN WORK\"; //Dodanie loginu i hasła $query = \"INSERT INTO konto(login, haslo, kto) VALUES\" . \"('$_POST[login]','\". MD5($_POST[haslo]) . \"','$_POST[Kto]');\"; //Sprawdzenie wartości klucza ID $query = \"SELECT LAST_INSERT_ID()\"; $ID = $query_data[0]; //Dodanie reszty danych $query = \"INSERT INTO klient (konto_id, imie, nazwisko, pesel, email, firma, ulica, kod, miejscowosc, tel
e on, fax, regon, nip)\". \" VALUES ($ID,'$_POST[imie]','$_POST[nazwisko]','$_POST[pesel]','$_POST[email]','$_POST[firma]','$_POST[ulica]','$_POST[kod]','$_POST[miejscowosc]','$_POST[telefon]','$_POST[fax]','$_POST[regon]','$_POST[nip]');\"; $result = mysql_query($query) or die (\"Zapytanie nieudane! BŁĄD: \".mysql_error()); //-------------------> ZATWIERDZENIE TRANSAKCJI $query = \"COMMIT\"; $result = mysql_query($query) or die (\"Zapytanie nieudane! BŁĄD: \".mysql_error()); //Zamknięcie połączenia z bazą danych mysql_close($conn); ?>
Parser php jeśli napotka błąd w zapytaniu mysqla, wyświelti na stronie napis "Zapytanie nieudane i opis błędu" a skrypt przestanie się wykonywać czyli żadna zmiana nie zostanie wprowadzona do bazy.
1. Czy powyższy kod jest poprawny? On działa ale czy jest "profesionalny"? Może robię coś nie dokońca poprawnie?
2. Jak zrobić, żeby zamiast opisu błędu podawał kod błędu (liczbowy)? I gdzie można to sprawdzić co taki błąd oznacza? Nie chce żeby użytkownicy wiedzieli co poszło nie tak.
3. Czy taki zapis
<?php ?>
można zastąpić innym? Np takim:
<?php if (!$result) then wyswietl_ladny_blad(); ?>
a)Czy można napisać funkcję bez parametrów wyswietl_ladny_blad() , która będzie tworzyła napis w stylu "Wystąpił błąd: KOD BŁDU: $kod_błędu"?
b ) Jak to zrobić?
c)I czy można ją zapisać w pliku include.php.inc (w tym pliku mam nazwe gosta, nazwę bazy i hasło do bazy)?