PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   MySQL Fehler 1064 (http://www.selfphp.de/forum/showthread.php?t=18789)

Superskunk 04.03.2008 18:47:03

MySQL Fehler 1064
 
Hallo,

ich wende mich an dieses Forum, da ich z.Zt. ein kleines Problem mit mySQL habe. Ich habe auf meinem Webspace den XT Commerce Shop installiert. Hat alles soweit funktioniert, doch leider bekomme ich bei dem Anlegen von neuen Kategorien folgende Fehlermeldung von SQL:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where categories_id = '12'' at line 1
update categories se where categories_id = '12'
[XT SQL Error]


Der Fehler wird meiner Meinung in einem Modul names new_category.php erzeugt. Hier ein Auszug dieser Datei, der vermutlich den Fehlr enthält:
PHP-Code:

if ( ($_GET['cID']) && (!$_POST) ) {
      
$category_query xtc_db_query("select * from " .
                                      
TABLE_CATEGORIES " c, " .
                                      
TABLE_CATEGORIES_DESCRIPTION " cd
                                      where c.categories_id = cd.categories_id
                                      and c.categories_id = '" 
$_GET['cID'] . "'");

      
$category xtc_db_fetch_array($category_query);

      
$cInfo = new objectInfo($category);
    } elseif (
$_POST) {
      
$cInfo = new objectInfo($_POST);
      
$categories_name $_POST['categories_name'];
      
$categories_heading_title $_POST['categories_heading_title'];
      
$categories_description $_POST['categories_description'];
      
$categories_meta_title $_POST['categories_meta_title'];
      
$categories_meta_description $_POST['categories_meta_description'];
      
$categories_meta_keywords $_POST['categories_meta_keywords'];
    } else {
      
$cInfo = new objectInfo(array()); ... 

Ich denke mal irgendetwas stimmt mit den Hochkommas oder Anführungszeichen nicht. Aber für mich ist der Befehl leider so verschachtelt, dass ich da als Anfänger nicht mehr durchblicke.

Danke für Eure Hilfe!

P.S. Das XT Commerce Forum ist voll mit Beiträgen, die den gleichen Fehler haben. Evtl. liegt es an der Version 5 von MySQL, die ich auch verwende. Lösungen gibt es bisher leider keine.

|Coding 04.03.2008 18:53:28

AW: MySQL Fehler 1064
 
Hi!

Der Code-Ausschnitt ist der Falsche. Die Fehlermeldung betrifft eine Code-Passage eines UPDATE-Statements.
Findest Du da eine Stelle die vielleicht Aufschluss geben kann?

Superskunk 04.03.2008 22:20:44

AW: MySQL Fehler 1064
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ok, also in meinem Browser steht in der Adresszeile:
...admin/categories.php?cPath=0&cID=&action=insert_category

Demnach müsste doch die entsprechende Datei "categories.php" sein, oder?
Sorry etwas lang, aber ich stelle sie trotzdem mal rein. Siehe Anhang...

Ein Update Statement habe ich dort leider nicht gefunden. Gibt es vielleicht auch die Möglichkeit ein Server-Log auszulesen um auf die besagte Stelle zu kommen?

lukgestach 04.03.2008 22:48:28

AW: MySQL Fehler 1064
 
Könnte es sein, dass du ein Spaltenname in der DB hast die gleich heisst wie ein vorreserviertes Wort bzw. Befehl in SQL? zb: FROM oder insert usw.
Habe gesehen das so ein Fehler auch zur gleichen Aussage bzw. Fehlernummer kommt

Habe in der txt Datei nichts gesehen ausser eine verknüpfung zu categories.php

Gruss Lukas

Superskunk 04.03.2008 23:48:53

AW: MySQL Fehler 1064
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also die Spaltennamen sind meiner Meinung nach alle ok so.

Ich habe hier nochmal die Datei categories.php als .txt angehängt. Da gibt es mehrmals ein UPDATE Statement. Mir ist allerdings nicht ungewöhnliches aufgefallen.

lukgestach 05.03.2008 00:25:45

AW: MySQL Fehler 1064
 
Auf die schnelle habe ich den Fehler auch nicht gesehen (falls es überhaupt dort dran liegt)
Ich habe jedoch die Fehlermeldung noch einmal genauer durchgelesen und bei folgendem gestutzt:
Zitat:

update categories se where categories_id = '12'
Was macht den das se dort?

|Coding 05.03.2008 07:21:33

AW: MySQL Fehler 1064
 
Zitat:

Zitat von lukgestach (Beitrag 113031)
update categories se where categories_id = '12'

Hi!

Das soll wohl der Ansatz des Schlüsselworts "SET" sein. Da liegt auch der Fehler.

Superskunk 05.03.2008 09:35:43

AW: MySQL Fehler 1064
 
Ok, das SET habe ich in der categories.php an folgenden Stellen gefunden:

PHP-Code:

xtc_db_query("UPDATE ".TABLE_CATEGORIES."
                                                     SET categories_image = '"
.xtc_db_input($categories_image_name)."'
                                                   WHERE categories_id = '"
.(int) $categories_id."'"); 

PHP-Code:

xtc_db_query("UPDATE ".TABLE_CATEGORIES."
                                                     SET categories_image = ''
                                                   WHERE categories_id = '"
.(int) $categories_id."'"); 

Was ist daran fehlerhaft? Ich bin davon ausgegangen, dass es an der Zeichensetzung der Hochkommas bzw. Anführungszeichen liegt. Die sehen in der Fehlermeldung auch seltsam aus.

|Coding 05.03.2008 14:04:12

AW: MySQL Fehler 1064
 
Hi!

Mal davon abgesehen, dass man Zahlen nicht quoted, weil es überflüssig ist, sind die beiden SQL-Statements in Ordnung.

lukgestach 05.03.2008 15:04:01

AW: MySQL Fehler 1064
 
Zitat:

Zitat von |Coding (Beitrag 113037)
Hi!

Mal davon abgesehen, dass man Zahlen nicht quoted, weil es überflüssig ist, sind die beiden SQL-Statements in Ordnung.

Darauf bin ich eben auch gekommen, darum hat mich die fehlermeldung irritiert...


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:54:58 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.