2012-01-24 2 views
0

私は単純なクエリの位置xとyをさまざまなユーザーIDなどに基づいて更新するのを助けることができます。しかし、私は変数を(ajaxを介して)更新する変数をPHPに渡すとき、それは問合せで数字1が問合せの最後に追加され、最後のIDを使用不可能にします(例ID 68は681になります)。MySqlクエリで使用すると、変数に数値1が追加されますか?

これまでに見たことはありませんが、私は比較的新しいSQL Thoです。

$xupdate = $_POST['xupdate']; 
$yupdate = $_POST['yupdate']; 
$stickytext_id = $_POST['stickytextid']; 
$user_id= $_POST['uid']; 
$proj_id=$_POST['projid']; 



echo $xupdate; //output 358 
echo'<br>'; 
echo $yupdate; //output 203 
echo'<br>'; 
echo $stickytext_id; //output 68 
echo'<br>'; 
echo $proj_id; //output 7 
echo'<br>'; 

$sql_update_stickyxy="UPDATE textsticky SET textsticky_x = $xupdate AND textsticky_y = $yupdate 
         WHERE textsticky_id = $stickytext_id"; 

echo $sql_update_stickyxy; //outputs UPDATE textsticky SET textsticky_x = 358 WHERE textsticky_id = 681 not 68? 
+0

ここに示すように、コードは正常に見えます。あなたはuser_idを含めるのを忘れました! $ sql ...を ";"で閉じる/終了してください。 「1」が追加される可能性のあるコードはありませんか?それはまた、ある種の真実を返すかもしれません。 $ SAql。= ... – djot

+0

このコードの後に​​別のecho文がありますか、おそらく '?> 1'ですか? –

+1

あなたのコードに(XSSと同様に)SQL注入口があり、あなたのvarsを引用していないので、考えられる構文エラーがあります。 (彼らは非数値データに爆弾を投げるだろう)。 – Johan

答えて

0

あなたのエコー出力を見ると、明らかにあなたのコードのいくつかを混同しています。最初のデバッグ指標として、クエリ内で$ stickytext_idの代わりに$ _POST ['stickytextid']を使用して、どこにアクセスするのかを確認できます。

+0

おそらく、私のisset()チェックと関係があります。ちょうど新しいファイルにコードを移動し、出力は正しいです。私はissetが$ _POSTが設定されていることを確認する最善の方法ではないと聞きました。どのようにそれをより良くするためにあなたからの任意のアイデア? – ChrisSherwood

関連する問題