2010-12-06 2 views
-2

Ich stellte eine Verbindung zur Datenbank her und zog ein Array herunter. Jetzt benutze ich Eingabeformulare, um die Preise auf diesen Telefonen zu ändern.PHP + MySQL-Probleme. Unerwartetes T_CONSTANT_ENCAPSED_STRING in/home/

Alles funktioniert gut, außer dies:

$query2 = 'UPDATE phone_models SET buyback_price=' . $data["key"] . ' WHERE id=' . $row["id"] ';'; 
mysql_query($query2) or die(mysql_error()); 

ich alles versucht habe. Ich habe die PHP-Handbücher durchsucht, ich habe nach Leuten gegoogelt, die die gleichen Probleme haben. Ich habe die Syntax geändert, viele verschiedene Zitat-Setups dafür verwendet. Und es wird einfach nicht funktionieren.

Ich habe sogar versucht, die herausnehmen; in der SQL-Zeile. Nichts funktioniert.

Danke!

EDIT: Ich habe dies auch versucht:

mysql_query("UPDATE phone_models SET buyback_price=" . $_POST . " WHERE id=" . $phone_id . ";") or die(mysql_error()); 

EDIT2: Ich hatte einen Fehler im ursprünglichen Code. Ich habe es auf diesem festgelegt:

$query2 = 'UPDATE phone_models SET buyback_price=' . $data["key"] . ' WHERE id=' . $row["id"] . ';'; 
mysql_query($query2) or die(mysql_error()); 

Und nun, mein Fehler ist: Sie haben einen Fehler in Ihrer SQL-Syntax; Sie in die Bedienungsanleitung zu Ihrer MySQL-Server-Version für die richtige Syntax entspricht verwenden in der Nähe von 'WHERE id = 1' in Zeile 1

Antwort

3

Sie verfehlten hier einen Verkettungsoperator (ein Punkt):

$row["id"] ';'; 

Fix:

$row["id"] . ';'; 

Als nächstes wird der SQL-Fehler, weil Sie nicht einfache Anführungszeichen Ihre String-Werte hinzugefügt haben:

$query2 = 'UPDATE phone_models SET buyback_price=\'' . $data["key"] . '\' WHERE id=\'' . $row["id"] . '\';'; 

Mit dem erwähnten sollten Sie Ihre Abfrage Variablen mit mysql_real_escape_string() vor dem Erstellen Ihrer SQL-Abfrage zu entkommen, um SQL-Injection-Angriffe zu verhindern.

$data["key"] = mysql_real_escape_string($data["key"]); 
$data["key"] = mysql_real_escape_string($row["id"]); 
$query2 = 'UPDATE phone_models SET buyback_price=\'' . $data["key"] . '\' WHERE id=\'' . $row["id"] . '\';'; 
+0

Whoops. Ich hatte das in der letzten Version dieses Codes nicht drin. Ich habe das behoben, aber ich bekomme immer noch einen Fehler. Jetzt ist es das: Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MySQL-Server-Version entspricht, um die richtige Syntax für 'WHERE id = 1' in Zeile 1 zu verwenden. – Charlie

+0

Das war der Trick! Vielen Dank! – Charlie

+0

@SquireCD: Um eine Antwort als akzeptiert zu markieren, klicken Sie auf das Häkchen auf der linken Seite. Ich bin froh, dass ich geholfen habe. – BoltClock

0
. $row["id"] ';';  
. $row["id"].';';  
0

Oder Sie verwenden {} für Array-ähnliche

echo "<input type='radio' name='rad' id='r{$row['num']}' value='{$row['num']}'/>" 
+0

Im Moment habe ich eine while-Schleife, während ich das Array abhole. So wird das erstellt: echo ("
"); Jetzt sicher, ob das ein guter Weg ist, um zu gehen. – Charlie

Verwandte Themen