2009-04-01 15 views
0
INSERT INTO `test` (`x`, `y`) WHERE `id` = `$id` 

VALUES (`$x`, `$y`) 

このクエリで何が問題になりますか?私はこれをPHPファイルのmysql_query()関数で実行します。Sqlクエリが機能しません!

+0

このクエリで達成したいことを詳しく説明できますか? –

答えて

6

挿入にWhere句を使用することはできません。あなたは行を挿入しているか、そうではありません。

4

データベースから情報を更新しようとしている場合は、実行中のクエリでINSERT INTOの代わりにUPDATEを使用します。

0

"WHERE id = $ id"を削除する必要があります。INSERT文では意味がありません。

2

挿入には句を使用できません。私はあなたが更新ステートメントを望むかもしれないと思う:

update test set 
x = $x, 
y = $y 
where id = $id 

データベースに新しい値を挿入しているとき、あなたは通常、挿入後までID値を持っていない(あなたが自動使用していると仮定すると生成されたID)。したがって

0

、いずれか

UPDATE試験SET X = 'X'、Y = '$ Y' のid = '$ IDを';試験( 'X'、 'Y')VALUES( '$ X'、 '$のY')INTO

OR

INSERT。

他の投稿に記載されているとおりです。WHEREを使用してINSERTを行うことはできません。

0

値にバッククォート( `)を使用するのではなく、一重引用符( ')を使用する必要があります。バッククォートは、列名/フィールド名を参照するときに使用されます。

この:

`field` = '$value' 

むしろこれより:あなたは本当に別のフィールドを参照するようにしたいんない限り

`field` = `$value` 

。これは、値をコピーしたり、JOINなどをマッチングするときに、時には必要なものです。しかし、そこに変数があるので、私はバッククックではなくシングルクォートを使いたいと思っています。