MySQL Query korrekt mit PHP aber Fehlermeldung

Teratek

New Member
Hallo Forum,

ich habe ein Problem und zwar bekomme ich bei einer bestimmten mysql query immer eine Fehlermeldung, wenn ich diese per PHP Skript ausführen lasse. Wenn ich diese per copy&paste direkt in der Datenbank über Heidi laufen lasse funzt alles perfekt

PHP:
<?php
require("c:/php/includes/connect.php");
$query="select 'Artnummer','Titel','link','Groesse','detail1','zustand','Lieferzeit','Beschreibung','mpn','EK','VK' UNION select * from uebersicht into outfile '/test.txt' fields escaped by '\\' lines terminated by '\r\n'"; 
odbc_exec($connect, $query);
?>

Fehlermeldung:
Warning: odbc_exec() [function.odbc-exec]: SQL error: [MySQL][ODBC 3.51 Driver][mysqld-4.1.22-community-nt]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 ''' at line 2, SQL state 37000 in SQLExecDirect in C:\Inetpub\wwwroot\test2.php on line 4

jemand Rat?
 
@virtual2: Das Ding ist anscheinend so alt, dass das nichtmal mehr ich kenne O.o
@TE:
PHP:
<?php
$query="select 'Artnummer','Titel','link','Groesse','detail1','zustand','Lieferzeit','Beschreibung','mpn','EK','VK' UNION select * from uebersicht into outfile '/test.txt' fields escaped by '\\' lines terminated by '\r\n'";  
odbc_exec($connect, $query);
mysql_query($query) or die(mysql_error());
?>
 
@TE:
Ja schon, aber die Library, mit der Du Dich von PHP zur MySQL-Datenbank verbindest, ist so alt wie ein vergammelter Keks...
 
PHP ist 5.2.17

Das Mysql Skript wird ja ausgeführt, allerdings nur direkt. Sitzt da noch was zwischen.

Nächste Frage: Kann ich das Problem umgehen, ohne ein Update zu machen? Ich bin auf diese MySQL Version angeweisen, weil nur mit dieser eine bestimmte Software auf meinem Server stabil läuft
 
dein code gibt folgende Meldung:

Warning: odbc_exec() [function.odbc-exec]: SQL error: [MySQL][ODBC 3.51 Driver][mysqld-4.1.22-community-nt]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 ''' at line 2, SQL state 37000 in SQLExecDirect in C:\Inetpub\wwwroot\vorschlag.php on line 4

Fatal error: Call to undefined function mysql_query() in C:\Inetpub\wwwroot\vorschlag.php on line 5
 
ich konnte den Fehler etwas eingrenzen

das Skript läuft ohne den letzten Teil ohne Probleme

PHP:
....fields escaped by '\\' lines terminated by '\r\n' ";
 
Wieso \\\?

Wenn man das aus "Computersichtweise" betrachtet wird einfach folgender Query übergeben:
Code:
fields escaped by '\' lines terminated by '
' ";


Der richtige Query müsste demnach so aussehen:
Code:
fields escaped by '\\' lines terminated by '[b]\\[/b]r[b]\\[/b]n' ";
 
Last edited by a moderator:
Wieso? Frage halt den Escape-/Quotingmechanismus von PHP und den der Treiber.

Geht auch so:
Code:
$backslash=chr(92);
$query="select 'Artnummer','Titel','link','Groesse','detail1','zustand','Lieferzeit','Beschreibung','mpn','EK','VK' UNION select * from uebersicht into outfile '/test.txt' fields escaped by '" . $backslash . $backslash . "' lines terminated by '\r\n'";
 
Back
Top