MySql - fehler

hury

Erfahrenes Mitglied
Hi,

ich habe einen SQL Fehler und finde nicht heraus woran es liegt.

Bei mir zuhause (Apache 2.2.4 / MySQL 5.0.37 / PHP 5.2.1 / Firefox 2.0.0.7 / IE 6.0) funktioniert das Script ohne Probleme. In der Firma (IE6.0.2800.1106 / Firefox 2.0.0.3 / IIS 5.0 / PHP 5.2.4 / mySQL 4.0.20a-nt) gibt es die folgende Fehlermeldung:

Notice: Undefined variable: Fehler in D:\shares\CL_HTML\ltu_html\ltu\tickets_schreiben.php on line 49

Fehler: MySQL: 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 '\'12345678\', \'Testkunde\', \'01,12,07\', \'DUSMUC\', \'129,99


Hier ist der betroffene Abschnitt:
Code:
mysql_query(sprintf('INSERT INTO tickets (BuchungsNr, KundenNamen, AbflugDatum, Strecke, Betrag, Bemerkung, Sonstiges, PaxAnzahl, Aktion, Verkäufer, Pn, Datum, Typ) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)',$buchungsnummer , $kundennamen, $abflugdatum, $strecke, $betrag, $bemerkung, $sonstiges, $paxanzahl, $aktion, $agent_2, $pn_2, $datum, $typ)); 


switch (mysql_errno()){ 
case 0: 
// Alles OK 
printf("Alles OK!"); 
mysql_close(); 
continue; 
default: 
// Sonstiger Fehler 
// -> Fehlermeldung ausgeben 
$Fehler .= "MySQL: ".mysql_errno().": ". 
mysql_error()."<br>\n"; 
printf("<br>Fehler: %s", $Fehler ); 
}


Hat jemand eine Idee? Liegt es an der 4rer MySql-Version?
 
Hallo,

Liegt es an der 4rer MySql-Version?
Da hast du wohl die richtige Vermutung.

Um dir zu sagen, wie du den SQL anpassen musst, damit er auch unter mySQL 4 läuft, wäre es hilfreich, wenn du auch den SQL zur Verfügung stellst, so wie er auf der Datenbank ausgeführt wird.
 
Sql befehl per echo ausgeben.
Auserdem haste im string ' drin und im Sql befehl vergessen die zu setzten die braucht sql umbedingt

PHP:
mysql_query(sprintf("INSERT INTO tickets (BuchungsNr, KundenNamen, AbflugDatum, Strecke, Betrag, Bemerkung, Sonstiges, PaxAnzahl, Aktion, Verkäufer, Pn, Datum, Typ) VALUES ('%s',' %s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",$buchungsnummer , $kundennamen, $abflugdatum, $strecke, $betrag, $bemerkung, $sonstiges, $paxanzahl, $aktion, $agent_2, $pn_2, $datum, $typ ));

Mfg Splasch
 
Hallo bin neu hier und dachte das Thema passt hier, hoffentlich mach ich nichts falsch ;-)

Zu meinem Problem. Ich bin gerade dabei ein einfaches GB zu machen und mir ist jetzt ein kleiner Fehler unterlaufen, und wollte um Hilfe fragen. Ich bin noch Anfänger, also nicht wundern dass es ein primitives GB wird (dient zur Übung), sondern ich brauch nur den Fehler. Hier das Programm (soweit ich halt bis jetzt bin)

<html>
<head><title>Gaestebuch</title></head>
<body bgcolor="orange">
<h1><div align="center">G&auml;stebuch</div></h1>
<?php

//Deklarationen
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'root');
define('MYSQL_PASSWORD', 'start');
define('MYSQL_DATABASE', 'gb');




//Variablen

$holdat1= "SELECT // Holt die Daten von Tabelle eintr
betreff,
nachricht,
datum
FROM
eintr
ORDER BY
datum DESC";




$db_connection = @mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD) or die("Verbindung war leider nicht m&ouml;glich");
if($db_connection)
{
echo "Verbindung wurde aufgebaut <br>";
$erfolg=mysql_select_db(MYSQL_DATABASE);
if($erfolg)
{
echo "Datenbank ". MYSQL_DATABASE . " wurde ausgew&auml;hlt <br> ";
mysql_query($holdat1) or die(mysql_error());

}
}

?>
</body>
</html>

Aber er arbeitet nicht den Query ab, folgende Fehlermeldung kommt:

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 '// Holt die Daten von Tabelle eintr betreff, ' at line 1

Wäre nett wenn mir einer den Syntax Fehler findet, ich finde den nicht.

Vielen Herzlichen Dank! :)
 
Hallo,

poste doch mal den SQL, so wie er auf der Datenbank ausgeführt wird.

Und bitte benuzte doch den Code-Tag (#) in der Symbolleiste.
 
Hi dg87,

Dein Fehler leigt hier:

PHP:
<?php
$holdat1= "SELECT // Holt die Daten von Tabelle eintr
betreff,
nachricht,
datum
FROM
eintr
ORDER BY
datum DESC";
?>

Du schreibst das Kommentar mit in das Query. Kannst mit // nicht auskommentieren, da Du dich schon innerhalb des Strings befindest.
Ändern in:

PHP:
$holdat1= "SELECT betreff, nachricht, datum FROM eintr ORDER BY datum DESC";

Gruß tyg3r
 
Hi,

ich muss es hochholen. Nun habe ich auf der Arbeit die gleiche SQL und PHP version wie zuhause. Es gibt aber weiterhin diese Fehlermeldung. Zuhause funktioniert es.

Der einzige Unterschied, ist dass ich zuhause Apache 2 habe und die auf der Arbeit irgendeinen anderen Webserver.

Jemand eine Idee?

gruss
Alex
 

Neue Beiträge

Zurück