php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.07.2005, 20:09  
Benutzer
 
Registriert seit: 26.09.2003
Beiträge: 98
wizzardxx
Standard column ???

Hallo zusammen,

ich habe eine Frage in zusammenhang mit einem Mysql Tabellen-Namen
Und zwar habe ich in der Datenbank eine Tabelle mit dem Namen
"column" erstellt. Nachdem ich per php die Tabelle mit Daten füllen wollte
wurde in besagter Tabelle keinerlei Daten eingetragen.
Auch wurde mir keine Fehlermeldung angezeigt.
Jetzt habe ich den ganzen Tag verbracht den Fehler zu finden.
Ergebnis:
Ich habe die tabelle umbenannt in "test".
Habe dann den query auch in test geändert und schon wurden die Daten
wie gewünscht in die DB eingetragen.
Jetzt meine Frage. Warum funktioniert der Tabellen-Name "column" nicht.
Ist dieser Name evtl. für eine Funktion von Mysql reserviert?
Mittlerweile glaube ich schon das mir das warme Wetter zu Kopf gestiegen ist.
wizzardxx ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 14.07.2005, 20:43  
Gast
 
Beiträge: n/a
Standard

reservierte Worte (MYSQL):
siehe hier:
http://dev.mysql.com/doc/mysql/en/reserved-words.html

~dilemma~
  Mit Zitat antworten
Alt 14.07.2005, 20:44  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 387
MrNiceGuy befindet sich auf einem aufstrebenden Ast
Standard

Japp, ist ein reservierter Begriff. Einfach `column` in deiner Abfrage draus machen (also die ` hinzufügen) und dann klappt es.
MrNiceGuy ist offline   Mit Zitat antworten
Alt 14.07.2005, 21:44  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von MrNiceGuy
Japp, ist ein reservierter Begriff. Einfach `column` in deiner Abfrage draus machen (also die ` hinzufügen) und dann klappt es.
nope. einfach einen sinnvollen namen aus der menge der verfügbaren, nicht-reservierten wörter auswählen.
axo ist offline   Mit Zitat antworten
Alt 14.07.2005, 22:08  
Benutzer
 
Registriert seit: 26.09.2003
Beiträge: 98
wizzardxx
Standard

Vielen Dank für eure Antworten.
Werde mir demnächst vorher die Reservierten Wörter angucken
bevor ich wieder so einen unsinnigen Tabellen Namen benutze.
:wink:
wizzardxx ist offline   Mit Zitat antworten
Alt 14.07.2005, 22:12  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

der dickste fallstrick im deutschsprachigen raum ist übrigens 'alter' als spaltenname. ab und zu fall ich selbst noch darauf rein.

eine gute idee ist es oft auch, tabellennamen ein projektspezifisches (genauer domänenspezifisches) präfix zu geben. in kombination mit einer in php definierten konstante TBL_PREFIX unschlagbar.

grüße
axo
axo ist offline   Mit Zitat antworten
Alt 14.07.2005, 23:25  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 387
MrNiceGuy befindet sich auf einem aufstrebenden Ast
Standard

@axo: Ich sehe die Problematik nicht, Namen zu verwenden, die reserviert sind, denn mit der Notation durch die ` sind diese ohne Einschränkung verwendbar. Und wenn jemand solche Wörter nutzen möchte, soll er dies doch tun, wir leben schließlich in einem freien Land

Mir ist es zwar noch nicht untergekommen, dass ich reservierte Wörter nutzen musste, aber alle meine Abfragen haben ohnehin die ` enthalten, was mich auf der Seite sehr gut absichert.
MrNiceGuy ist offline   Mit Zitat antworten
Alt 14.07.2005, 23:53  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

und ich spare mir die permanente angabe der backticks und verwende die von axo beschriebenen methoden.
__________________
derHund ist offline   Mit Zitat antworten
Alt 14.07.2005, 23:55  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich bin für semantisch sinnvolles programmieren. z.b. ist $hund, $katze, $maus sinnvoller als $var1, $var2, $var3, auch wenn syntaktisch beides richtig ist und es den interpreter einen dreck schert, wie die variablen heißen.

eine spalte 'column' zu nennen, und dann mit den backticks die syntax zu retten, finde ich gelinde gesagt bescheuert ... ich weiß ja, dass es gültig ist, aber bei jedem lesen und wiederlesen des codes würde mir wieder und immer wieder das selbe aufstoßen und mich bei der arbeit aufhalten: 'wtf? die spalte heißt spalte? na toll... ' ... aus diesem grund, und weil es eine unendliche menge an wörtern gibt, die nicht (my)sql-reserviert sind, plädiere ich für die verwendung nicht-reservierter wörter und das verhindern von syntaxfehlern auf dieser ebene.

übrigens vorbildlich, das mit den backticks. in dem sinne bin ich extremst schreibfaul und tue alles dafür, backticks nie zu benötigen.
axo ist offline   Mit Zitat antworten
Alt 15.07.2005, 00:03  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 387
MrNiceGuy befindet sich auf einem aufstrebenden Ast
Standard

@axo: Jedem das seine Wie gesagt, ich bin noch nicht in die Lage gekommen sie wirklich zu benötigen, aber es ist einfach eine Art besondere Absicherung. Ich bin da Perfektionistisch Allerdings kann ich nicht ausschließen irgendwann doch mal auf ein derartiges Wort zu stoßen (es muss ja nicht Column sein), da ich generell für Variablen-, Tabellen- und Spaltennamen englische Titel verwende, die - wie du mit deinem Beispiel $Hund, $Katze, $Maus etc. - einen Namen besitzen, der zur Situation passt und hinter dem man sich vorstellen kann, was dort enthalten ist. Allerdings ist dadurch halt nicht ausgeschlossen, dass man doch mal ein entsprechendes Wort erwischt, aus welchen Gründen auch immer
MrNiceGuy 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
Unknown column in 'where clause' Datenbanken 11 10.07.2011 18:11
Unknown column 'test' in 'where clause' PHP Tipps 2005 4 03.06.2009 14:20
MySQL Bug #15229: Unkown column bei JOINs pcschröda Datenbanken 4 11.04.2008 11:10
DB Portierung ins neue Mysql: Error 1060 duplicate column dealer Datenbanken 4 02.11.2007 08:45
Unknown column 'rights' in 'field list' GSJLink Datenbanken 24 30.07.2007 12:26
Can't find FULLTEXT index matching the column list [MYSQL] Cytrix PHP Tipps 2006 1 16.02.2006 13:02
#1191 - Can't find FULLTEXT index matching the column list ? Cytrix Datenbanken 4 06.02.2006 22:58
#1063 - Incorrect column specifier for column 'ID' nicobischof Datenbanken 1 20.10.2005 15:41
[Erledigt] Beim Uploaden der DB, Fehler 1170 - BLOB column Datenbanken 3 10.09.2005 17:51
Suche Programmierer, Designer, Schreiber... blinkster.de Beitragsarchiv 76 14.08.2005 18:31
MySQL error: Column count doesn't match value count at row 1 atom-dragon PHP Tipps 2005-2 4 21.07.2005 01:38
Unknown column 'preis' in 'field list' Xfer Datenbanken 4 01.11.2004 10:34
Unknown column in 'field list' PHP Tipps 2004 1 18.09.2004 21:54
[Erledigt] #1054 - Unknown column '6%25252B' in 'Artikel' ??? Datenbanken 7 22.07.2004 11:39
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45


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