 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
20.03.2008, 19:47
|
#1
|
|
TP-Junior
Registriert seit: Mar 2002
Ort: Hof
|
MySQL
Hallo,
kann es sein, dass man bei einer MySQL-Tabelle die Spalten nicht mit Zahlen benennen kann? Ich habe also eine Tabelle in der die Spalten 01,02,03 usw. heissen.
Jetzt möchte ich mittels UPDATE in ein Feld einer Spalte eine 1 eintragen lassen wo vorher z.B. eine 0 stand:
$sql=mysql_query("UPDATE tabellenname SET '01'='1' ");
oder auch
$sql=mysql_query("UPDATE tabellenname SET 01='1' ");
funktioniert nicht
Wenn ich die Spalte jedoch umbenenne z.B. in Test gehts mittels:
$sql=mysql_query("UPDATE tabellenname SET Test='1' ");
Andi
|
|
|
20.03.2008, 20:07
|
#2
|
|
TP-Member
Registriert seit: Mar 2007
|
Zitat:
Zitat von ASchwiedy
Hallo,
kann es sein, dass man bei einer MySQL-Tabelle die Spalten nicht mit Zahlen benennen kann? Ich habe also eine Tabelle in der die Spalten 01,02,03 usw. heissen.
|
Gute frage.
Klappt den ein:
Code:
$sql=mysql_query("UPDATE `tabellenname` SET `01`=1");
? Wenn auch nicht würde ich sagen, nein es ist nicht Möglich.
Viel Erfolg und schöne Ostern!
Rafael
P.S.: Vielleicht auch mals Rizzo's Tipps und Tricks bezüglich "MySQL und Backticks" lesen!
__________________
sizeof(void)
|
|
|
20.03.2008, 20:16
|
#3
|
|
TP-Junior
Registriert seit: Mar 2002
Ort: Hof
|
Nein
Danke aber das geht leider auch nicht. komisch, normalerweise dürfte es kein Problem sein
|
|
|
20.03.2008, 22:12
|
#4
|
|
TP-Member
Registriert seit: Mar 2007
|
Zitat:
Zitat von ASchwiedy
Danke aber das geht leider auch nicht. komisch, normalerweise dürfte es kein Problem sein
|
Gibt es keine Fehlermeldung? Stichwort: "mysql_errno()"
Stimmten Tabellenname / Spaltenname zu 100%?
Von was für einen Type ist die Spalte?Soll es ein andere Type als Zahl sein solltest du:
Code:
$sql=mysql_query("UPDATE `tabellenname` SET `01`='1'");
versuchen?
__________________
sizeof(void)
|
|
|
21.03.2008, 00:37
|
#5
|
|
TP-Senior
Registriert seit: Dec 2006
|
Imho können Spaltennamen nicht nur aus Zahlen bestehen. 
|
|
|
21.03.2008, 02:33
|
#6
|
|
TP-Member
Registriert seit: Mar 2007
|
Zitat:
Zitat von threadi
Imho können Spaltennamen nicht nur aus Zahlen bestehen. 
|
Falsch!
Code:
CREATE TABLE `testDB`.`test` (
`01` INT NOT NULL
) ENGINE = MyISAM
ergibt:
Code:
1 If field type is "enum" or "set", please enter the values using this format: 'a','b','c'...
If you ever need to put a backslash ("\") or a single quote ("'") amongst those values, precede it with a backslash (for example '\\xyz' or 'a\'b').
2 For default values, please enter just a single value, without backslash escaping or quotes, using this format: a
Code:
CREATE TABLE `testDB`.`test` (
`01` INT NOT NULL
) ENGINE = InnoDB
ergibt:
Code:
Table `testDB`.`test` has been created.
Also kommt es auf die Storage Engine an.
Bei der InnoDB klappt auch ein :
Code:
INSERT INTO test( `01` )
VALUES ( 1 )
und ein
Code:
UPDATE test SET `01` =111
Also InnoDB benutzen dann klappt es auch mit den Feldern nur aus Zahlen!
Aber immer schon die Backticks benutzen, sonst gibt es Probleme!
So gn8
Rafael
__________________
sizeof(void)
|
|
|
21.03.2008, 04:54
|
#7
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Kaiserslautern
|
Hallo ASchwiedy,
Du solltest rein aus Prinzip darauf verzichten Felder in einer DB nur numerisch zu benennen. Zum einen hat man nicht immer Zugang zu InnoDB, weil viele Hoster nur MyISAM anbieten. Zum anderen kann es auch später in PHP zu Probleme führen. Der Feldname entspricht dem Variablenname in PHP, dort sind Variablen wie $4711 unzulässig. Auch der objektorientierte Aufruf $objekt->4711 nach mysql_fetch_object() führt zu einem Parse Error. Also müsstest Du die Felder mit Alias auslesen, weshalb Du den Feldern auch von vornherein einen ordentlichen Name geben kannst. 
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
|
|
22.03.2008, 15:03
|
#8
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Und ganz abgesehen davon sollte der Spaltenname auch Rückschlüsse auf den Sinn eines Datenfeldes liefern, was bei '01' nun überhaupt nicht gegeben ist. Dann kannst Du auch alle Spalten mit a,b,c usw. benennen. Sowas macht man alleine aus Gründen der Verständlichkeit und Nachvollziehbarkeit der Logik schon nicht.
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| 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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:45 Uhr.
|
 |