2012-01-24 150 views
0

希望你能幫助我有一個簡單的查詢更新位置x和y基於各種用戶ID等但我有一個問題,當我通過變量更新(通過ajax)到PHP,我得到的變量罰款,但在放置它在查詢中將數字1添加到查詢結束,使得最後的id不可用(參見示例ID 68變爲681)。查詢中使用MySql Query將變量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」。這也可能是某種回報TRUE;或者你在$ sql後面執行的其他操作。= ... – djot

+0

你有另一個echo語句,或者在這個代碼之後有一個'?> 1'嗎? –

+1

您的代碼中存在SQL注入漏洞(以及XSS)和可能​​的語法錯誤,因爲您沒有引用您的變量。 (他們會炸彈非數字數據)。 – Johan

回答

0

看着你的echo'd輸出,你顯然會盜用你的一些代碼。作爲第一個調試措施,您可以在查詢中使用$ _POST ['stickytextid']而不是$ stickytext_id,並查看它的位置。

+0

可能與我的isset()檢查有關 - 只是將代碼移至新文件並且輸出是正確的。我聽說isset不是檢查$ _POST的最佳方法。你們有什麼想法如何更好地做到這一點? – ChrisSherwood