1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

sql-Syntax nicht valide, warum

Dieses Thema im Forum "Konfiguration" wurde erstellt von diltigug, 23. Juli 2008.

  1. diltigug

    diltigug Well-Known Member

    Registriert seit:
    20. Juli 2006
    Beiträge:
    279
    Zustimmungen:
    0
    Ach ja, sagtest du ja schon, nix mehr mit mysql_*

    o.k. jetzt kommt das:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Sieht doch gar nicht so schlecht aus, oder?



    P.S. gibt es eigentlich irgendwann einen Preis für den längsten Tread des Forums? :D
     
  2. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Jop, sieht gar nicht schlecht aus. Ich tipp echt auf den Umlaut da, das der irgendwie Probleme macht... kannst du da nicht mal auf was andres als auf "Büro" filtern? Nur mal zum testen...

    PS: Wir sind doch erst bei 21 Antworten. Das ist doch noch harmlos ;)
     
  3. codestyling

    codestyling WPD-Team

    Registriert seit:
    30. März 2008
    Beiträge:
    1.904
    Zustimmungen:
    0
    Wenn deine DB auf UTF-8 läuft und du die Datei mit diesem Text 'Büro' direkt gefüttert hast, hast du sie auch als UTF-8 ohne BOM Marker im TextEditor gespeichert ? Wenn nicht, ist es eine ANSI Datei mit korruptem Zeichen in einer Anfrage für UTF-8.
     
  4. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Was mir auch grade noch auffällt: Bisher hieß der Wert immer "büro", jetzt auf einmal "Büro". MySQL ist unter Umständen Case-sensitive.
     
  5. diltigug

    diltigug Well-Known Member

    Registriert seit:
    20. Juli 2006
    Beiträge:
    279
    Zustimmungen:
    0
    mmh...
    :confused:, das war´s auch nicht
     
  6. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Naja, die Query an sich ist ja okay, nur liefert "Büro" halt kein Ergebnis. "Obergeschoss" liefert auch "null" zurück? In PHPMyAdmin liefern die Queries Ergebnisse?

    So, bin erstmal weg für heute...
     
  7. diltigug

    diltigug Well-Known Member

    Registriert seit:
    20. Juli 2006
    Beiträge:
    279
    Zustimmungen:
    0
    in phpmyadmin funktionieren die Abfragen normal.

    Passt, ich muss auch weg, schönen Abend noch...
     
  8. diltigug

    diltigug Well-Known Member

    Registriert seit:
    20. Juli 2006
    Beiträge:
    279
    Zustimmungen:
    0
    bin gerade noch auf die glorreiche Idee gekommen, es mal ohne die where-Klausel zu probieren (hätte ich auch früher drauf kommen können).
    Allerdings ohne Erfolg, nach wie vor:
    Aber immerhin scheinen dann die Umlaute kein Problem zu sein.

    Update:
    Auch noch probiert statt * nur ein Feld auszulesen, ohne Erfolg:
     
    #28 diltigug, 29. Juli 2008
    Zuletzt bearbeitet: 29. Juli 2008
  9. diltigug

    diltigug Well-Known Member

    Registriert seit:
    20. Juli 2006
    Beiträge:
    279
    Zustimmungen:
    0
    Sowohl die Tabellen der WP-DB als auch die der mit den mitarbeiter-Daten stehen laut phpmyadmin auf latin1_general_ci nur das Feld ort hatte ich im Laufe unserer Versuchsreihe auf utf8_unicode_ci umgestellt.

    Was ist ein BOM Marker? Das musst Du mir nochmal erläutern.
    Das Skript bearbeite ich derzeit im Editor in WP im html-Fenster, ansonsten arbeite ich mit Phase5.
     
  10. codestyling

    codestyling WPD-Team

    Registriert seit:
    30. März 2008
    Beiträge:
    1.904
    Zustimmungen:
    0
    Hier die Wikipedia Beschreibung für BOM: Byte Order Mark – Wikipedia
    Nicht alle Texteditoren (Standalone) können UTF-8 Text Dateien schreiben ohne eine Byte Order Mark vor dranzusetzen. Da du aber mit dem Theme-Editor ? arbeitest, sollte der eigentlich korrektes UTF-8 schreiben, sicher bin ich nicht, denn wenn die Ursprungsdatei ANSI war schreibt der auch wieder ANSI raus.

    Ich mach erstmal Feierabend, komme später darauf nochmal zurück.
     
  11. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Kannst du mal irgendwas "einfaches" ausprobieren?
    "SHOW TABLES" oder sowas?

    Vielleicht auch mal direkt als 1. Parameter von get_results(), statt vorheriger query()?

    codestyling: Kannst du mich mal bitte aufklären, was du hier mit dem BOM möchtest? Das BOM sollte doch mit der Query selbst eigentlich nix am Hut haben (abgesehen von den UTF-8-codierten Sonderzeichen im Querystring natürlich...)?
     
  12. diltigug

    diltigug Well-Known Member

    Registriert seit:
    20. Juli 2006
    Beiträge:
    279
    Zustimmungen:
    0
    Guten Morgen,
    mmh... irgendwie ist mein letzter Tread verloren gegangen, also nochmal:
    Ich arbeiten an dem Skript derzeit im Beitragseditor von WP im html-Bereich (nicht im Visuell-Bereich). Hier habe ich eine statische Seite angelegt auf der die externen Daten ausgegeben werden sollen.
    Das "Ursprungsskript" ist mit Phase5 erstellt und Teile davon mit copy+paste in WP eingefügt worden.
    Aber irgendwie glaub ich nicht, das es daran liegt, denn ich habe bereits ein Skript, was anstandslos funktioniert (noch ohne wpdb-Klasse), das ich auf die gleiche Weise erstellt habe.
    Auch ein direkter Vergleich dieser Skripte hat mich nicht weitergebracht. Die einzigen Unterschiede im SQL-String bestehen darin, das ich nicht alles auslese (sprich "*" nicht verwende, sondern Felder definert habe) und keine where-Klausel benutze.
    Sehr verwirrend finde ich.

    d.
     
  13. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Verwende mal '*' statt dessen, oder meine "SHOW TABLES"-Query von weiter oben. Mal irgendwas wo wir sicher sein können, dass keine Umlaute irgendwo stören könnten.

    Du meinst, direkt im Beitragseditor? Mit einem PHP-Plugin? Vielleicht macht auch der Editor Müll aus deiner Query... verwende doch statt dessen mal lieber ein Seitentemplate oder so, und gib den Code direkt mit einem Texteditor ein.
     
  14. diltigug

    diltigug Well-Known Member

    Registriert seit:
    20. Juli 2006
    Beiträge:
    279
    Zustimmungen:
    0
    :oops: So?
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    und/oder so?
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    erstes bringt
    und zweites einen syntax-error.

    Sorry, ich hab´s einfach noch nicht so drauf mit der richtigen Syntax-Formulierung, brauch da immer ein paar Anläufe.:-?

    So langsam bekomme ich Muffensausen, das es irgendein blöder Syntxfehler ist, obwohl ich alles schon ich weiß nicht wie oft kontrolliert habe.:neutral:
     
  15. codestyling

    codestyling WPD-Team

    Registriert seit:
    30. März 2008
    Beiträge:
    1.904
    Zustimmungen:
    0
    Der BOM Hinweise war nur zusätzlich, primär wichtig ist nur, das die Seite (Template) UTF-8 gespeichert ist.
    Hier noch ein paar Randinformationen. Wenn die betreffende DB nicht komplett auf UTF-8 läuft, wird es mit dem wpdb Objekt Probleme geben, denn:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Spätestens das SET NAMES wird UTF-8 verlangen, somit muß der Query String selbst UTF-8 sein. MySQL :: MySQL 5.1 Referenzhandbuch :: 10.4 Verbindungszeichensatz und -sortierfolge

    Und zum Thema Beitragseditor: Mich würde interessieren, wie ein dort eingeklebtes Script ausgeführt wird. Wenn das mit exec_php gemacht wird, das WP Objekt zwar benutzt aber die wp-config.php nicht, dann sind DB_CHARSET und DB_COLLATE nicht definiert und die DB sucht sich raus, was sie verstehen will.
     
    #35 codestyling, 30. Juli 2008
    Zuletzt bearbeitet: 30. Juli 2008
  16. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    diltigug: Das 2., aber mit Anführungszeichen:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    (mmh, das 1. sollte doch auch funktionieren... vielleicht passt da intern was nicht oder ich interpretiere die Doku zu get_results() falsch... :???:)

    Ja okay, deswegten fragte ich ja. Aber anscheinend nimmt er ja kein Template.

    Ja, das hab ich auch schon gefunden. Daher ja meine Testqueries komplett ohne irgendwelche Umlaute oder Non-ASCII-Sonderzeichen. Die müssen ja was liefern, egal wie's in der DB aussieht. Oder siehst du das anders?

    Das könnte man ja eventuell sogar zum Vorteil nutzen, um die Konstanten mit anderen Werten nochmal neu zu initialisieren. Falls es wirklich an den Umlauten liegt...
     
  17. codestyling

    codestyling WPD-Team

    Registriert seit:
    30. März 2008
    Beiträge:
    1.904
    Zustimmungen:
    0
    Primär sollte erstmal geklärt werden, wie das PHP Script, das im Beitragseditor eingeklebt wurde, ausgeführt wird. Da einige Fehlermeldungen von eval'd code schreiben, sieht das für mich so aus, als würde irgend ein Plugin das eingeklebte Script rausfischen und per eval() ausführen. Da kann es zu den merkwürdigsten Nebenwirkungen (angefangen von Scope Problemen bis zu nicht global zugegriffenen Objekten) kommen.
    Es wäre gut, den gesamten Scriptblock mal zu sehen, der in den Editor eingefügt wird und die Angabe dazu, wer und wie das ausgeführt wird.
     
    #37 codestyling, 30. Juli 2008
    Zuletzt bearbeitet: 30. Juli 2008
  18. diltigug

    diltigug Well-Known Member

    Registriert seit:
    20. Juli 2006
    Beiträge:
    279
    Zustimmungen:
    0
    Aha, endlich passiert mal was neues :):

     
  19. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Mmh.... sollte ich die Doku doch tatsächlich missinterpretiert haben? aber es steht doch eindeutig so da:

    Sehr merkwürdig das ganze...

    Was is denn das nu wieder? :shock: Was steht in Zeile 30 des eval'd Code? Also wahrscheinlich die 30. Zeile des Codes im Editorfenster. Sollte es doch mit Exec-PHP zusammenhängen, dass es anders nicht funktioniert?
     
  20. codestyling

    codestyling WPD-Team

    Registriert seit:
    30. März 2008
    Beiträge:
    1.904
    Zustimmungen:
    0
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden