PhpMyAdmin Zeichen`problem
Nicole
- datenbank
0 Nicole0 Tobias Kloth0 Nicole
Hallo erst mal ;-)
Zur Zeit versuche ich mich an sqlite.
Ich nehme zum testen bestehende
Tabellen aus Phpmyadmin(exportieren sql) heraus
und kopiere diese in meinen sqlite insert Befehl.
Jetzt das Problem:
phpmyadmin zeigt mir ein seltsames Hochkommata
(letzte Taste Zahlenreihe tastatur) in den
Insert Befehlen an.
Gemeint ist ->` ,nicht dieses ->'
bsp.
INSERT INTO cds
VALUES ('Beauty', 'Ryuichi Sakamoto', 1990, 1);
Also dieses cds
wird in dieser Form von sqlite abgelehnt.
Die Frage ist warum macht phpmyadmin das ?
Kann man das abstellen ?
Was ist das für ein seltsames Zeichen ? Bei Tastatureingabe
erscheint es auch nie sofort, sonder immer erst beim nächten
Zeichen.
Gruss
Nikki
Nachtrag:
Ich weiss dass es sich bei dem Zeichen um das Accent grave handelt,
aber meine Frage zielt eher darauf, wofür das gut sein soll ?
Wir haben doch ein Hochkommata, warum benötigen wir
dann so einen französischen käse(bzw, phpmyadmin)?
*Ausgerechnet Die , Die sich weigern englisch lernen zu wollen ;-)
Und warum kommt sqlite damit dann nicht zurecht ?
Gruss
Nikki
Hello,
das ist für die Reperatur sehr hässlicher Programmierfehler gut.
Mit dem Zeichen werden Namen (für Tabellen, Spalten, Indexe) von reservierten Worten unterschieden.
So kann man dann auch eine Spalte order
nennen, ohne dafür erschossen zu werden.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
So kann man dann auch eine Spalte
order
nennen, ohne dafür erschossen zu werden.
<pingelig> Nein, das geht nicht, da weder ASCII(0) noch ASCII(255) noch ` in einem Identifier verwendet werden dürfen. </pingelig>
Hello,
So kann man dann auch eine Spalte
order
nennen, ohne dafür erschossen zu werden.<pingelig> Nein, das geht nicht, da weder ASCII(0) noch ASCII(255) noch ` in einem Identifier verwendet werden dürfen. </pingelig>
?
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
So kann man dann auch eine Spalte
order
nennen, ohne dafür erschossen zu werden.<pingelig> Nein, das geht nicht, da weder ASCII(0) noch ASCII(255) noch ` in einem Identifier verwendet werden dürfen. </pingelig>
?
Ist dein Name Tom oder Tom
?
P.S. Ich weiß schon, was und wie du es meinst. Wahrscheinlich bin ich so pedantisch geworden, weil ich mich schon so lange mit dem Computerkram beschäftige...
Hallo,
Ich weiss dass es sich bei dem Zeichen um das Accent grave handelt,
Nein. In diesem speziellen Fall handelt es sich um Backticks.
Wir haben doch ein Hochkommata, warum benötigen wir
dann so einen französischen käse(bzw, phpmyadmin)?
Weil MySQL beispielsweise solche unsinnigen Spaltennamen wie Customer's Name
beherrschen kann http://dev.mysql.com/doc/mysql/de/legal-names.html. MySQL kann also mit Sonderzeichen und Leerzeichen in Spalten- und Tabellen-Bezeichner umgehen. Hierfür müssen diese _besonderen_ Bezeichner in Backticks (`) oder Anführungszeichen (") eingeschlossen werden, um diese zu begrenzen. Außerdem müssen Bezeichner, die genau so heißen, wie SQL-Anweisungen, so gequotet werden. PHPMyAdmin macht das _vorsorglich_ mit allen Bezeichnern.
Und warum kommt sqlite damit dann nicht zurecht ?
Weil es nicht PHPSQLiteAdmin heißt?
Goggle mal, ob man in PHPMyAdmin dieses automatische quoten mit Backticks abschalten kann. Notwendig ist das nämlich, bei sinnvollen Bezeichnern für Tabellen und Spalten, nicht.
viele Grüße
Axel
Hallo Nicole,
[Quoten von Spalten- und Tabellennamen]
Die Frage ist warum macht phpmyadmin das ?
damit man auch reservierte Wörter als Spaltennamen verwenden kann (reservierte Wörter müssen maskiert werden, siehe http://dev.mysql.com/doc/mysql/en/legal-names.html)
Kann man das abstellen ?
für den Export kannst du es abstellen indem du den Punkt »Tabellen- und Feldnamen in einfachen Anführungszeichen« (unter »Struktur«) abschaltest. Dauerhaft bekommst du das Kreuzchen weg indem du in der config.inc.php den Wert für »$cfg['Export']['sql_backquotes']« auf »false« setzt. Ob man das Verhalten grundsätzlich abstellen kann, weiß ich nicht.
Was ist das für ein seltsames Zeichen ?
ein Backtick
Bei Tastatureingabe
erscheint es auch nie sofort, sonder immer erst beim nächten
Zeichen.
dann gib als nächstes Zeichen mal ein »a« ein - dann weißt du warum :-)
Grüße aus Nürnberg
Tobias
Kann man das abstellen ?
für den Export kannst du es abstellen indem du den Punkt »Tabellen- und Feldnamen in einfachen Anführungszeichen« (unter »Struktur«) abschaltest.
Hallo Tobias,
*schäm, das hatte ich probiert aber nicht gemerkt, dass
die sogenannten Backticks weg waren, weil in den Kommentaren
phpmyadmin diese beibehält im Dump ;-)
Vielen Dank,
auch an alle die Anderen
Gruss
Nikki