php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 31.03.2008, 19:45  
Benutzer
 
Registriert seit: 31.03.2005
Beiträge: 80
Anotherone
Standard Bei UPDATE erkennen, ob der Datensatz existiert?

Ich benötige für einen Import die Information, ob ein Datensatz, der per Update aktualisiert werden soll, auch existiert, ohne vorher ein SELECT diesbezüglich zu machen. Ich habe schon mysql_query, mysql_affected_rows und mysql_errno geprüft, aber alle enthalten unabhängig davon, ob der zu aktualisierende Datensatz existiert oder nicht die gleichen Werte, wenn nichts aktualisiert werden muss (also alle Felder in der Updateanweisung die Werte enthalten, die auch schon in der Datenbank stehen). Gibt es eine Möglichkeit, dies ohne ein SELECT zu prüfen? Ich bin sicher, die Datenbank weiß, ob ein entsprechender Datensatz existiert, nur mit welchem Befehl komme ich da ran?
Anotherone ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 31.03.2008, 19:57  
CIX88
Gast
 
Beiträge: n/a
Standard

[OT]
4. Versuch, 3 mal Forum abgekackt ...

mysql_info() ...
  Mit Zitat antworten
Alt 31.03.2008, 20:14  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

hi,

das einfachste und sinnvollste ist, einfach die UPDATE anweisung zu triggern und per mysql_num_rows() die anzahl der betroffenen datensätze abzufragen. ist das ergebnis 0 so ....

gruß
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline   Mit Zitat antworten
Alt 31.03.2008, 20:17  
Benutzer
 
Registriert seit: 31.03.2005
Beiträge: 80
Anotherone
Standard

@ cix88 Vielen Dank!!! Eine eigene Funktion dafür wär natürlich schöner, aber viel besser als nix...

@Brian Danke für den Tip, habe mich aber noch nicht mit Triggern beschäftigt
Anotherone ist offline   Mit Zitat antworten
Alt 31.03.2008, 21:50  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

mysql_num_rows funtkioniert eigentlich (so stehts auch im manual) nur bei selects, für UPDATE, INSERT und co gibts http://de.php.net/mysql_affected_rows
robo47 ist offline   Mit Zitat antworten
Alt 31.03.2008, 22:14  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von robo47
mysql_num_rows funtkioniert eigentlich (so stehts auch im manual) nur bei selects, für UPDATE, INSERT und co gibts http://de.php.net/mysql_affected_rows
hups, hascht ja recht.

Zitat:
Brian Danke für den Tip, habe mich aber noch nicht mit Triggern beschäftigt
triggern = ausführen. also einfach dein update query ausführen und mit mysql_affected_rows() kannst du dann testen wie viele reihen betroffen waren...
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline   Mit Zitat antworten
Alt 01.04.2008, 11:08  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Vielleicht hilfts dir auch wenn du im SQL String folgendes verwendest:

Code:
INSERT INTO ... ON DUPLICATE KEY UPDATE ...
aber ob dir das wirklich hilft kann ich nicht sagen da ich deinen konkreten Anwendungsfall nicht kenne. Ich für meinen Teil finde die Funktion genial und hab die schon mehrfach benutzt, gerade bei Imports.
cycap ist offline   Mit Zitat antworten
Alt 01.04.2008, 14:49  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

vielleicht hilft Dir auch REPLACE ? Das liefert meines Wissens die Anzahl der vorgenommenen Operationen zurück.
nikosch ist offline   Mit Zitat antworten
Antwort


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
auf nächsten Datensatz zugreifen cycap Datenbanken 5 18.12.2007 14:32
Update / syntaxfehler prinzli Datenbanken 7 24.11.2007 21:24
Update und Insert in einem ? sponer Datenbanken 6 01.07.2007 16:02
datensatz problem 24bits PHP Tipps 2006 1 30.08.2006 18:52
Wenn datensatz existier update sonst insert axelnes Datenbanken 9 27.04.2006 23:49
UPDATE count nach Link Aufruf ? PHP Tipps 2006 9 22.01.2006 14:53
einen variablen datensatz löschen PHP Tipps 2007 3 04.11.2005 12:41
nächsten datensatz bei klick auf button weiter... PHP Tipps 2005-2 1 14.08.2005 12:19
Update in mysql funzt nicht maeck PHP Tipps 2005-2 4 27.06.2005 22:52
Datensatz geändern? patr1k PHP Tipps 2005 12 14.02.2005 12:46
Leeren Datensatz editierbar machen Anuschka PHP Tipps 2004-2 1 27.12.2004 13:28
Update per Cronjob (where Feld = Wort) Apfeltyp PHP Tipps 2004-2 3 14.12.2004 18:25
Update von ausgelesenem Datensatz Datenbanken 3 12.10.2004 10:18
Überprüfen ob ein Datensatz schon existiert? Paulo Datenbanken 3 02.09.2004 12:20
Datensatz abfragen und in Formularfeldern ausgeben Datenbanken 1 25.08.2004 09:24

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql update datensatz nicht vorhanden, php abfrage ob update oder insert, sql wenn datensatz vorhanden, php datensatz vorhanden, sql herausfinden ob feld vorhanden, sql feststellen ob datensatz vorhanden wenn ja updaten, sql datensatz existiert nicht, überprüfen ob ein eintrag vorhanden ist dann insert, http://www.php.de/datenbanken/45725-bei-update-erkennen-ob-der-datensatz-existiert.html, sql update wenn datensatz nicht existiert, wenn datensatz existiert update, herausfinden ob datensatz vorhanden sql, sql, update, zeile existiert nicht, sql prüfen ob eintrag vorhanden bzw. updaten, sql datensatz vorhanden, sql wenn datensatz existiert update, sql update überprüfen, php prüfen ob sql update erfolgreich, sql php prüfen ob datensatz existiert dann update insert, sql trigger wenn datensatz existiert

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:27 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.