php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.08.2008, 15:50  
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 (my)SQL Tipps & Tricks

Hallo zusammen,

aus aktuellem Anlass eröffne ich mal diesen Thread. Evtl. lohnt es sich auch das ganze später ins Wiki zu schreiben, je nachdem wieviel euch so einfällt.

Ich schreibe das ganze, weil ich momentan Änderungen an einer Software machen muss die ich vor Jahren programmiert habe.

Hierbei habe ich damals einen fatalen Fehler gemacht, der mir jetzt richtig Ärger einbringt und damit Anfängern nicht das gleiche passiert schreibe ich das hier mal hin.

Und zwar habe ich damals, jung und naiv, bei jedem INSERT einfach sowas geschrieben:

Code:
INSERT INTO tabelle VALUES ('wert1','wert2','wert3');
Ich habe also keine Feldnamen angegeben und mich darauf verlassen das die Tabelle so bleibt Wenn ich jetzt nur ein Feld hinzufügen will funktioniert meine Software an diversen Stellen nicht mehr, was meist auch noch zu spät auffällt.

Dabei gibt es 2 schönere Alternativen

Angabe der Feldnamen:
Code:
INSERT INTO tabelle (feld1,feld2,feld3) VALUES('wert1','wert2','wert3')
Oder mein Favorit:
Die UPDATE-Syntax (funktioniert zumindest bei MySQL):
Code:
INSERT INTO tabelle SET feld1 = 'wert1', feld2 = 'wert2', feld2 = 'wert3'
Damit kann man dann beliebige Felder der Tabelle hinzufügen ohne das die Funktionalität der Software beeinträchtigt wird.

Was sich im laufe der Zeit auch noch als sehr nützlich erweisen hat ist

Code:
INSERT INTO ... ON DUPLICATE KEY UPDATE
und

Code:
INSERT INTO tabelle1 (feldx) SELECT feldy FROM tabelle2


Vielleicht finden sich noch ein paar erfahrene SQL'ler die ihre Tipps und Tricks der Community hier vorstellen.

Gruß
Cy
cycap ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 11.08.2008, 19:39  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

[ot]

Jung und naiv.... Das kenn ich auch
[/ot]

Also ich hab da auch schon mal mit zu kämpfen gehabt... hat vielleicht damit zu tun, dass man früher es nicht besser wusste. Immer wieder stolpere ich über meinen eigenen Code, der, so wie ich das jetzt einschätze, ziemlicher müll ist, aber funktioniert!
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline   Mit Zitat antworten
Alt 12.08.2008, 08:53  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von cycap Beitrag anzeigen
Ich habe also keine Feldnamen angegeben und mich darauf verlassen das die Tabelle so bleibt.Wenn ich jetzt nur ein Feld hinzufügen will funktioniert meine Software an diversen Stellen nicht mehr
Ähnliches kann dir passieren, wenn du SELECT * FROM angibst, und z.B. die Reihenfolge der Felder ändert. Deshalb auch dort immer die Attribut-Namen angeben.
Zitat:
Zitat von cycap Beitrag anzeigen
Die UPDATE-Syntax (funktioniert zumindest bei MySQL):
Code:
INSERT INTO tabelle SET feld1 = 'wert1', feld2 = 'wert2', feld2 = 'wert3'
Das funktioniert nur bei MySQL. Deshalb würde ich mir das gar nicht erst angewöhnen, sondern so weit wie möglich ANSI-SQL verwenden.
Zitat:
Zitat von tomtaz Beitrag anzeigen
hat vielleicht damit zu tun, dass man früher es nicht besser wusste
In den meisten Fällen ist es doch reine Bequemlichkeit
__________________
Gruss
L
lazydog 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
[Erledigt] MySQL - ERROR 1044 bei erstellen einer Datenbank _youngenterpriser_ Datenbanken 2 05.02.2008 17:56
MySQL in PHP integrieren (Windows 2003 Server ohne Apache) Plague Server, Hosting und Workstations 3 30.08.2007 21:56
Mysql Server Einstellunen Optimieren pchero Datenbanken 3 01.05.2007 19:50
[Erledigt] MYSQL Problem Datenbanken 4 09.02.2006 15:14
Kein Zugriff über ODBC mit der IP-Adresse auf MySql DB Datenbanken 4 09.02.2006 11:04
[Erledigt] Mysql 4.1.x unter php 4.3.9 Datenbanken 3 15.11.2005 13:49
Schnittstelle zwischen PHP und MySQL klappt net !!! Datenbanken 16 16.10.2005 14:24
[Erledigt] not allowed to connect to this MySQL server PHP Tipps 2005-2 2 23.09.2005 18:34
mysql_result(): supplied argument is not a valid MySQL PHP Tipps 2005-2 4 25.08.2005 14:44
[REISE] Stockholm - Tipps & Tricks imported_Ben Off-Topic Diskussionen 29 09.08.2005 17:06
MYSQL läuft nur wenn /tmp auf 777 Datenbanken 5 06.07.2005 08:38
mysql root passwort vergessen Datenbanken 1 29.05.2005 11:33
MYSQL Verwaltung Stümper Datenbanken 1 25.11.2004 10:10
Access denied for user: '@localhost' / SYSTEM@localhost Datenbanken 0 10.11.2004 20:35
[Erledigt] PHP5 &a m p; MySQL Datenbanken 5 01.08.2004 05:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql tipps, sql die besten pro gruppe, tipps sql, die besten pro gruppe sql, sql tipps und tricks, sql \die besten pro gruppe\, sql tipps tricks, sql besten pro gruppe, sql tricks, tipps für sql, tipps zu sql, die_besten_pro_gruppe, sql die besten einer gruppe, sql die_besten_pro_gruppe., php sql tricks, tips und tricks sql, sql datenbank tipps, sql bester pro gruppe, /die_besten_pro_gruppe, \die besten pro gruppe\ sql

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