(php + sql) Find den Syntax fehler nicht

Wlan-Kabel

Lt. Junior Grade
Registriert
Juli 2008
Beiträge
297
Folgendes:
Code:
INSERT INTO ´squads´ (name, ligaurl, liga) VALUES ('$sname', '$ligaurl', '$liga')

Fehlermeldung:
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 '´squads´ (name, liga) VALUES ('iLLi', 'WC3CL')' at line 1

Verzweifelnder:
ich

watt mach ichn falsch? :(
 
mach doch mal die komischen ´´ um squads weg? Ansonsten kann ich wenig sagen, da dein Beispiel-SQL nicht ganz zur Fehlermeldung zu passen scheint (andere Parameteranzahl- und namen).

Abgesehen davon ist dein Programmcode ein Scheunentor für SQl-Injections (zumindest auf den ersten Blick). Schau dir mal die PHP-Doku an:
<?php
// Verbindung herstellen
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
OR die(mysql_error());

// Anfrage erstellen
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
?>
 
Wlan-Kabel schrieb:
Code:
INSERT INTO ´squads´ (
name,
ligaurl,
liga
) VALUES (
'$sname',
'$ligaurl',
'$liga'
)

und schon kannst du genau sehen in welcher zeile der fehler steckt.

@ igg: die ´´ sind am richtigen platz. die werden verwendet um tabellen und spalten zu markieren und sollten eigentlich überall benutzt werden. weggelassen werden sie nur durch faul- oder unwissenheit.
 
die ´´ sind syntaktisch da an genau der richtigen stelle, bei mir hat sogar mal irgendwann was nich ohne die dinger gefunzt.
Naja aber Gott alleine weiß warum aber mit der sprintf geschichte funtzts
thank you.
 
@cLaW.: Bei mir gabs immer Probleme mit den ``, insbesondere Spaltennamen. Besonders nervig wenn man sie via copy & paste irgendwie einfügt und dann wieder anpassen muss. Wäre ich fleißig würde ich mir mal die Mühe machen zu suchen, ich weiß ;).
 
claW. schrieb:
die ´´ sind am richtigen platz. die werden verwendet um tabellen und spalten zu markieren und sollten eigentlich überall benutzt werden. weggelassen werden sie nur durch faul- oder unwissenheit.

Wlan-Kabel schrieb:
die ´´ sind syntaktisch da an genau der richtigen stelle, bei mir hat sogar mal irgendwann was nich ohne die dinger gefunzt.

Tja meine Herren - hier wird mal wieder auf einem Niveau kluggeschissen, dass sich die Balken biegen.

Aber wie wäre es denn mal mit Fakten?


Fakt 1: Backticks sind erlaubt und u.U. notwendig, um Tabellen und Feldnamen als solche zu kennzeichnen.
Fakt 2: ´ ist kein Backtick!
Fakt 3: ` ist ein Backtick!

Folge:
´ ist nicht erlaubt
` ist erlaubt!

Die Fehlermeldung bringt's genau ans Tageslicht:

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 '´squads´ (name, liga) VALUES ('iLLi', 'WC3CL')' at line 1

Der Anfang der Meldung bei Syntaxfehlern ist ausschlaggebend.


Es tut mir ja Leid, hier so forsch antworten zu müssen, aber Syntaxkonformität ist für jemanden, der sich Programmierer nennen will, das A und O.
 
Zurück
Oben