[PHP] Query sehe den Fehler nicht [erledigt]

DadyCool

Well-known member
ID: 81813
L
30 April 2006
601
19
Hallo,

ich habe mich zu einer ODBC DB verbunden.
Die ID steht in this->resource

nun setzt ich ein sql statment ab:

PHP:
$test = 'SELECT * FROM tabelle where id = 4711'
$this->result = odbc_exec($this->resource, $test);

Das geht auch ohne Probleme. Wenn ich aber einen anderen Datentyp abfragen möchte, der kein Interger ist sondern ein text: z.B.

PHP:
$test = 'SELECT * FROM tabelle where textID= 4711'
$this->result = odbc_exec($this->resource, $test);

bekomme ich den Fehler:

SQL error: [PARKWAY][ConnectWare]Datentypen in einer Operation passen nicht zusammen, SQL state 42000

Habe dann noch ein paar dinge versucht wie

PHP:
$test = 'SELECT * FROM tabelle where textID= "4711"'
$this->result = odbc_exec($this->resource, $test);

dann kommt SQL error: [PARKWAY][ConnectWare]Spalte nicht gefunden 471 spalte nicht gefunden.

Hat jemand vielleicht eine Idee?

Danke schonmal

DadyCool
 
Zuletzt bearbeitet:
nun habe ich ein Problem mit einem Insert. In der Tabelle gibt es nur die Spalte test.

PHP:
$query = 'INSERT INTO testDB (test) values ("text")';
PHP:
$query = 'INSERT INTO testDB (test) values (text)';

Fehler
Es fehlt eine Literalangabe (Zeichenkette, Zahl, Datum/Zeit) vor text, SQL state 42000 in SQLExecDirect

oh man.. hat sich erledigt ;)


DadyCool
 
Zuletzt bearbeitet:
Strings bzw. Texte gehören bei MySQL immer in einfache Anführungszeichen.

[edit]

Da auf etwas unkonventiellem Wege nach einer Begründung gefragt wurde:

Eine Begründung gibt es in diesem Sinne nicht wirklich, es ist nunmal so. Stehen Nicht-Zahl-Werte nicht in einfachen Anführungszeichen, so interpretiert MySQL dies in aller Regel als Spaltennamen.

Ich finde leider den Passus in der Doku nicht, wo definiert wird, dass Texte derart ausgezeichnet werden müssen. Sollte jemand diesen Passus finden, würde ich mich freuen, wenn dies ergänzt würde.
 
Zuletzt bearbeitet: