Sql Fehler 1064

realmoney

Gesperrt
23 März 2008
900
104
kann mir einer verraten wo hier der fehler sein soll?ich komm einfach nicht drauf :(

Code:
$sql = "SELECT titel,text FROM keys WHERE id='$_GET[id]'";

denn php schmeisst mir den fehler raus

Fehler 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 'keys WHERE id=''' at line 1

aber ich find da nix :(
 
PHP:
='$_GET[id]' ";

PHP:
'".$var."'
- wie wär's damit?

Achja und denke bitte ggf. an die Absicherung, falls der User auf die Daten zugreifen kann, eine ungesicherte GET-Variable in die DB einzusetzen ist recht heikel.
 
öhm
Code:
Parse error: syntax error, unexpected T_STRING in /var/www/web1/html/testing.php on line 6

villeicht sollte ich dazu erwähnen das das script seiten dynamisch erstellen soll und durch das get=id die passenden informationen holt.

edit: jetzt kommt was anderes nach dem dein korrigierter code kam ;)

Code:
Parse error: syntax error, unexpected $end in /var/www/web1/html/testing.php on line 17

lustigerweise gibts gar keine zeile 17 und kein $end im script*gg*

das is das ganze script:

Code:
<?php 

$mysqli = new mysqli("localhost","webxx","xxx","xxx",3306); 

 $sql = "SELECT titel,text FROM keys WHERE id='".$var."';
if (!$mysqli_result = $mysqli->query($sql)) { die('Fehler ' . $mysqli->errno . ': ' . $mysqli->error); } 
     
$row = $mysqli_result->fetch_assoc(); 
?>
 
Parse-Error bedeutet, dass du im Manual erstmal die Syntax lesen und lernen sollst :roll:

Was genau falsch ist, steht in der Fehlermeldung. Hier: Unerwarteres Ende der Datei. Fehlt also irgendwo ne Klammer zu oder sowas, auf das der Parser wartet und es bis zum Ende der Datei nicht kam, also brach er ab.
 
PHP:
$sql = "SELECT titel,text FROM keys WHERE id='".$var."'";

...villeicht sollte ich dazu erwähnen das das script seiten
dynamisch erstellen soll und durch das get=id die passenden
informationen holt...
Vielleicht sollte man erwähnen, dass es trotzdem gefährlich ist, direkte Usereingaben zuzulassen?!
 
Code:
$sql = "SELECT titel,text FROM keys WHERE id='$_GET[id]'";

aber ich find da nix :(

Ich finde da schon was, denn die Fehlermeldung sagt dir doch, an welcher Stelle der Anweisung der Fehler ist. Nämlich in deinem Tabellennamen keys, der so nicht verwendet werden darf sondern so verwendet werden muss:

Code:
$sql = "SELECT titel,text FROM `keys` WHERE id='$_GET[id]'";

Aber natürlich ist es auch wirklich nicht sonderlich ratsam, hier GET-VARS zu verwenden. Die ID sollte in einer eigenen Variablen gespeichert und erstmal deren Inhalt überprüft werden, ob auch das drinsteckt, was drinstecken soll. Das ganze so ohne Prüfung an die Datenbank weiterzugeben, ist fast schon grob fahrlässig...
 
Ich finde da schon was, denn die Fehlermeldung sagt dir doch, an welcher Stelle der Anweisung der Fehler ist. Nämlich in deinem Tabellennamen keys, der so nicht verwendet werden darf sondern so verwendet werden muss:

Code:
$sql = "SELECT titel,text FROM `keys` WHERE id='$_GET[id]'";

Aber natürlich ist es auch wirklich nicht sonderlich ratsam, hier GET-VARS zu verwenden. Die ID sollte in einer eigenen Variablen gespeichert und erstmal deren Inhalt überprüft werden, ob auch das drinsteckt, was drinstecken soll. Das ganze so ohne Prüfung an die Datenbank weiterzugeben, ist fast schon grob fahrlässig...

funzt auch net.immer noch die gleiche meldung.(auf die meldung von las miranda komm ich gar nichmehr...)

und das es gefährlich ist weiss ich.ist auch nur für interne zwecke zum testen.wenns mal on gehn sollte wirds umgeschrieben.

dennoch wurmt mich das das das jetzt nich will (man 3 das hintereinander)

ok mitlerweile gehts wieder vorran.jetzt muss ich das ding nur beenden aber egal wo ich die klammer setzte der fehler rutscht einfach ne zeile weiter...
sehr merkwürdig.funzt doch sonst immer^^
 

Klar funktioniert das... ich hab das vorher und gerade nochmal, schliesslich getestet. Dann wirst du wohl beim Abtippen noch einen Fehler reingebaut haben, z.B. dass keys in ' und nicht in ` eingeschlossen wurde. Da besteht ein deutlicher Unterschied... ;)

immer noch die gleiche meldung.

Klar, weil in obigem Fall die Fehlerursache wieder an der gleichen Stelle auftaucht.

wenns mal on gehn sollte wirds umgeschrieben.

Warum man es nicht gleich richtig macht, ist mir ein Rätsel... :think:
 
mitlerweile gehts ja.habs ja korrigiert *g*
hab auch das '".$var."' eingesetzt.

nun muss ich nur noch den unexpected $end finden der sich versteckt denn eigentlich is alles geschlossen.

das is das komplette teil

<?php

$mysqli = new mysqli("localhost","xx","xx","xx",xx);

$sql = "SELECT titel,text FROM ` keys ` WHERE id='".$var."'

if (!$mysqli_result = $mysqli->query($sql)) { die('Fehler ' . $mysqli->errno . ': ' . $mysqli->error); }

$row = $mysqli_result->fetch_assoc();

?>
<html>
<head>
<title><?php echo $row[key]; ?></title>
<meta blablazeug>
</head>
<body><?php echo $row; ?> </body> </html> [/quote] i...ehler is immer nur ne zeile weitergesprungen.
 
Code:
$sql = "SELECT titel,text FROM ` keys ` WHERE id='".$var."'

muss heissen

Code:
$sql = "SELECT titel,text FROM ` keys ` WHERE id='".$var."'[COLOR="Red"]";[/COLOR]
 
ok geändert.

dann hat er mir angezeigt das die spalte falsch is in der tabelle (war auch so denn es war ne falsche) habs geändert auf die richtigen und nun scheint es zu gehn :)

danke nochmal an alle :)

(was sone blöden kleinen punkte alles ausmachen können)


achja schön wärs gewesen...

<?php echo $row[key]; ?> + <?php echo $row; ?> holt er sich nicht aus der DB ...ein.die spalten exestieren und haben inhalt^^
 
Zuletzt bearbeitet:
[...]

<?php echo $row[key]; ?> + <?php echo $row; ?> holt er sich nicht aus der DB ...[URL="https://tut.php-q.net/de/"]Quakenet Tut ist gut.
Ansonsten bist du auf php.net auch gut aufgehoben.

Ach und bitte benutzt die BBCodes damit man den Code wenigstens anständig lesen kann. Dort solltest du dann auch selbst schnell den Fehler erkennen.


Zu deiner Einstellunge "ich programmier sollange schlecht bis ich es online stelle" sag ich mal nichts...
Merkst du wie absurd das ist?


Aber immerhin benutzt du wenigstens MySQLi. ;)