2010-12-06 3 views
-2

私はデータベースに接続し、配列をプルダウンしました。今では、これらの電話機の価格を変更するために入力フォームを使用しています。PHP + mySQLに問題があります。予期しないT_CONSTANT_ENCAPSED_STRING/home/

すべてがこの素晴らしい作品を除い:

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

私はすべてを試みました。私はPHPのマニュアルを検索しましたが、私は同じ問題を抱えている人のために探検しました。私は構文を変更し、これに対して多くの異なる引用設定を使用しました。それだけではうまくいかないでしょう。

私はさらに取り出してみました。 SQLの行で。何も動作しません。

ありがとうございます!

編集:私もこれを試してみた:

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

EDIT2を:私は、元のコードでエラーが発生しました。私はこれにそれを修正しました:

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

そして今、私のエラーは、次のとおりです。 あなたのSQL構文でエラーが発生しています。近くで使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください「WHERE ID = 1」ここではライン1

答えて

3

あなたは連結演算子(ドット)を逃した時:

$row["id"] ';'; 

修正:

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

あなたは、文字列値に単一引用符を追加していなかったので、次に、あなたのSQLエラーは次のとおりです。

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

これまで説明したように、SQL注入攻撃を防ぐために、SQLクエリを構築する前に、mysql_real_escape_string()を使用してクエリ変数をエスケープする必要があります。

$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

おっとのような配列のために} {使用することができます。私はこのコードの最後のバージョンでそこにそれを持っていませんでした。私はそれを修正しましたが、私はまだエラーが発生しています。これはこれです:あなたはあなたのSQL構文に誤りがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックし、正しい構文が1行目の 'WHERE id = 1'の近くで使用されるようにしてください。 – Charlie

+0

これがそのトリックでした!ありがとうございました! – Charlie

+0

@SquireCD:回答を受け入れ済みとマークするには、左側のチェックマークをクリックします。私は助けてうれしいです。 – BoltClock

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

それとも、この

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

今、配列をフェッチするときにwhileループが発生します。これは、次のようになります。 echo( "
"); これが良い方法かどうか確認してください。 – Charlie

関連する問題