php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.08.2005, 11:10  
Erfahrener Benutzer
 
Registriert seit: 14.09.2004
Beiträge: 382
Crypi
Standard Fehler abfangen bei Eintrag in DB

Hi,

ich hab ein einfaches Formular gestrickt mit dem Benutzer Werte in einer DB speichern können, in der DB wird automatisch inkrementiert, allerdings sollen auch noch andere Spalten eindeutig sein.

Jetzt müsste ich immer eine Abfrage machen ob der eingegebene Datensatz schon vorhanden ist oder nicht, vorrausgesetzt ist setz die Spalte nicht auf Unique, das bedeutet einen DB-Zugriff mehr. Den würd ich gern vermeiden, nur bekomme ich wenn ich Unique setze eine Fehlermeldung, die zwar ich verstehe, aber der "normalo Nutzer" nicht unbedingt, kann ich das irgendwie abfangen und in eine Fehlermeldung umwandeln die ich vorgebe?

Vielen dank für die Hilfe und die Mühe!

Crypi
Crypi ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.08.2005, 11:25  
Erfahrener Benutzer
 
Registriert seit: 27.10.2004
Beiträge: 1.093
PHP-Kenntnisse:
Fortgeschritten
Chr!s
Standard

PHP-Code:
<?php
mysql_query
("SELECT count(spaltenname) FROM tabelle WHERE ...")
   or die( 
mysql_error() );
if(
mysql_num_rows()) {
        echo 
'Schon vorhanden';
}
?>
Chr!s ist offline  
Alt 18.08.2005, 11:51  
Erfahrener Benutzer
 
Registriert seit: 14.09.2004
Beiträge: 382
Crypi
Standard

Jo danke, aber das ist genau der DB-Zugriff den ich vermeiden möchte!
Genau das will ich umgehen!

So habe ich es bisher gemacht aber ich will das ändern!

Crypi
Crypi ist offline  
Alt 18.08.2005, 11:57  
Erfahrener Benutzer
 
Registriert seit: 27.10.2004
Beiträge: 1.093
PHP-Kenntnisse:
Fortgeschritten
Chr!s
Standard

Oops, tschuldigung hatte deine Frage nur flüchtig gelesen..
Chr!s ist offline  
Alt 18.08.2005, 12:01  
Erfahrener Benutzer
 
Registriert seit: 17.01.2005
Beiträge: 227
Mirod
Standard

überprüf doch einfach, wieviele zeilen eingefügt worden sind...

mysql_affected_rows, wenn ich mich nicht irre...
bei 0 gibts ne fehlermeldung, sonst nicht.
Mirod ist offline  
Alt 18.08.2005, 12:02  
Erfahrener Benutzer
 
Registriert seit: 14.09.2004
Beiträge: 382
Crypi
Standard

und hast du eine idee wies anders gehen könnte?

allerdings stell ich mir grad die Frage ob das überhaupt sinn macht. naja wenn ichs nicht vorher teste wird ein INPUT versucht, das gibt nen fehler, da ja unique gesetzt wurde. jetzt ist die frage was ist schneller, der vergebliche INPUT oder der SELECT. Ich würd ja auf INPUT tippen, also wärs ganz gut wenns sone Lösung gäbe.

Hat jemand ne Idee?

Crypi
Crypi ist offline  
Alt 18.08.2005, 12:43  
Erfahrener Benutzer
 
Registriert seit: 14.09.2004
Beiträge: 382
Crypi
Standard

in wie weit hilft mir affected_rows? Wenn die query einen Fehler zurück liefert, was sie ja tut wenn ein unique missachtet wird, ists kein gültiges result das zurück geliefert wird. dann bekomm ich eine fehlermeldung von dem affected_rows.
die fehlermeldung von der query kann ich ja mit @ unterdrücken allerdings die vom affected_rows nicht. zumindest würds dann alles keinen sinn mehr machen.

Crypi
Crypi ist offline  
Alt 18.08.2005, 13:17  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

Duplicate Entry == Fehlercode 1062

PHP-Code:
$sql="INSERT INTO ...";
@
mysql_query($sql);
if (
mysql_errno()) {
  if (
mysql_errno()==1062) {
    echo 
"Datensatz war schon vorhanden";
  } else {
    echo 
"Insert Error: ".mysql_error();
  }
} else {
  echo 
mysql_affected_rows()." Datensätze angelegt.";

DiBo33 ist offline  
Alt 18.08.2005, 13:32  
Erfahrener Benutzer
 
Registriert seit: 14.09.2004
Beiträge: 382
Crypi
Standard

hm wär ne möglichkeit, ich nutz nur leider postgresql, pg_error gibts nicht und etwas vergleichbares hab ich nicht gefunden.


und war da nicht was, dass dieses @ auch nicht so gut sein soll?so richtig dran erinnern tu ich micht nicht, mir ist nur so als wenn ds nicht benutzt werden sollte.

Crypi
Crypi ist offline  
Alt 18.08.2005, 13:40  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

Zitat:
die fehlermeldung von der query kann ich ja mit @ unterdrücken allerdings die vom affected_rows nicht
Zitat:
und war da nicht was, dass dieses @ auch nicht so gut sein soll?so richtig dran erinnern tu ich micht nicht, mir ist nur so als wenn ds nicht benutzt werden sollte.
???


Zitat:
hm wär ne möglichkeit, ich nutz nur leider postgresql
Ah ja, ziemlich früh kommt die wichtigste Info.

Zitat:
pg_error gibts nicht und etwas vergleichbares hab ich nicht gefunden.
naja
http://www.php.net/manual/en/function.pg-last-error.php
DiBo33 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Include fehler abfangen? fadass PHP Tipps 2005-2 16 23.12.2008 13:07
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Fehler abfangen nieselfriem PHP Tipps 2005-2 2 10.10.2005 17:11
Fehler abfangen in Klassen PHP Tipps 2005-2 26 25.06.2005 19:26
Fehlermeldung - aber kein fehler... Tschuu HTML, Usability und Barrierefreiheit 16 14.03.2005 15:56
Fehler abfangen bei MySQL Abfrage Dave Waterstone PHP Tipps 2005 4 21.02.2005 15:15
eval fehler abfangen PHP Tipps 2005 9 18.02.2005 19:37
[Erledigt] Alle Fehler außer Notice abfangen ? PHP-Fortgeschrittene 7 05.12.2004 16:39
[Erledigt] mysql fehler PHP Tipps 2004 2 03.11.2004 00:32
php-variblen Fehler mit JavaScript abfangen möglich? HTML, Usability und Barrierefreiheit 2 27.10.2004 01:08
Wo ist der Fehler? PHP Tipps 2004 21 21.10.2004 22:36
finde fehler nicht [in guestbook-script] PHP Tipps 2004 12 22.09.2004 22:23
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
wo ist der Fehler? Eintrag aus Datenbank löschen Ente PHP Tipps 2004 2 24.08.2004 15:04
mysql_real_escape_string - Fehler Schaelle Datenbanken 0 03.07.2004 23:32

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql duplicate entry abfangen, php duplicate entry abfangen, duplicate entry abfangen, duplicate entry key 2, php mysql duplicate entry abfangen, mysql unique fehler abfangen, duplicate entry abfangen php, php mysql fehler insert abfangen, php db fehler abfangen, php mysql unique fehler abfangen, pg_error php, http://www.php.de/php-tipps-2005-2/29365-fehler-abfangen-bei-eintrag-db.html, duplicate entry php abfangen, mysql unique insert fehlermeldung, mysql fehler abfangen, postgresql fehler abfangen, postgresql select fehler abfangen, mysql unique fehlercode mit php abfangen, mysql error abfangen, duplicate entry abfragen

Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.