2012-05-09 8 views
1
$query="INSERT INTO `main_table` (`count`) VALUES ('$count') WHERE userid='$someid'"; 

基本的に私は変数countにmainidの変数countに新しい値countを挿入したいと思います。このSQL文の問題

SQLは、この文の構文に不満があります。

+1

あなたはブランドの新しい行を作成したい、またはあなたには、いくつかの以前に格納されたデータを更新したかったのでしたか?多分、将来の訪問者のために、あなたの質問を編集して、MySQLがあなたに与える正確なエラーを含めることができます。 –

+0

テーブルの構造を投稿してください。 'SHOW CREATE TABLE main_table'です。 –

答えて

5

既存の行を更新するには、INSERT文ではなくUPDATE文を使用する必要があります。

UPDATE `main_table` 
SET `count` = '$count' 
WHERE userid='$someid' 

それがオンラインで作業を参照してください:sqlfiddle

INSERTは、あなたのテーブルに完全に新しい行を挿入するために使用されます。 INSERT文でWHERE句を使用することはできません。

+0

「Field list」にUnknownカラム「1」があります。私はすべての列名が正しいことを再度チェックしました。 –

+0

@jasonwhite:正確なクエリをテストしましたが、間違いなく動作します。オンラインで作業していることを示すsqlfiddleへの私のリンクを参照してください。コピー+貼り付けキーが正しく動作していない可能性がありますか?私の推測では、何とか '$ count'または' $ someid'のいずれかが引用符ではなくバッククォートで囲まれてしまったということです。 PHP変数が評価された後に、あなたがデータベースに送信した* exact * SQLを投稿できますか? –

0

$クエリ= "main_tableのINSERT INTO(回数)VALUES($カウント)WHEREユーザID = '$のsomeid'" でなければなりません。

単一引用符は、varchar型フィールドのvarchar型変数にのみ使用されます。

Rhian A.(NZT)