2012-02-24 9 views
0

を解く:カントは私が次のエラーメッセージを取得していたにINSERT文を持っている。このSQLエラー

Error: 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 'WHERE ref = '6u5i14e'' at line 1 

は、これは私のPHPファイルです:

<?php 

$secret_question = mysql_real_escape_string($_REQUEST['secret_question']); 
$secret_anwser = mysql_real_escape_string($_REQUEST['secret_anwser']); 


$con = mysql_connect("localhost","*****","*****"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db('*****', $con); 

$sql="INSERT INTO public (secret_question, secret_anwser) VALUES ('$secret_question','$secret_answer') WHERE ref = '". $_SESSION['ref']."' "; 

if (!mysql_query($sql,$con)) 
    { 
     die('Error: ' . mysql_error()); 
    } 
    else 
    { 
     echo '<hr><h3>Your Account Has Now Been Activated. <br/> <a href = "votenow.php">Please Login To Vote</a></h3><hr>'; 

    } 
?> 

私はここで間違って何をやっていますか?

+2

INSERT ...有効なSQL構文ではありません、それはありますか? :) –

+0

ところで、最初に '$ secret_anwser'を使い、クエリで' $ secret_answer'を使います。 –

+0

セッションの値も 'mysql_real_escape_string()'にしてください。セッションに値を格納するとそれをエスケープしません* –

答えて

3

「回答」のスペルを確認してください。コード内の別の場所で別の方法でスペルを書いています。

2

更新プログラムを使用する必要があります。

$sql="UPDATE public SET 
    secret_question='$secret_question', secret_anwser='$secret_answer' 
    WHERE ref = '". $_SESSION['ref']."' "; 
2

既存のデータを変更する場合は、INSERTではなくUPDATEを使用してください。

1

INSERT ... VALUESはWHEREをとりません。 WHERE文を実行する必要がある場合は、以下のようにする必要があります。しかし、それは更新していない挿入する必要がありますように、これはと思われるので注意

INSERT INTO public (secret_question, secret_anwser) 
SELECT '$secret_question','$secret_answer' 
FROM public 
WHERE ref = '". $_SESSION['ref']."' " 

推奨クエリする:

UPDATE public 
SET secret_question = '$secret_question', 
    secret_anwser = '$secret_answer' 
WHERE ref = '". $_SESSION['ref']."' " 
関連する問題