2012-12-20 38 views
0

我把這段代碼,但似乎沒有當我檢查我的MySQL數據庫我用AJAX做一個SQL statment但似乎沒有發生

$.ajax("ajax.php?type=insert&giftcode="+newarray[$x]+"&winner=winner1"); 

的情況發生,我ajax.php我把

require_once('setup.php'); //where i connect to the database 

if ($_GET['type']== "insert") 
{ 

    $query='UPDATE prizes SET winner='+$_GET['winner'] +',time='+NOW()+',WHERE prizecode='+$_GET[giftcode]+'LIMIT 1'; 
    $insert_query = $db->query($query) ; 
    checkDBError($insert_query); 

    echo("something happened"); 

} 

數據庫本身沒有問題,因爲連接沒有問題,因爲它可以在代碼的不同部分工作,但是我可以看到我做錯了什麼

+1

我不確定這是否是答案,但請記住PHP是在javascript之前執行的! –

+1

首先:清理輸入或面對SQL注入!第二:如果您的查詢返回錯誤,您是否檢查過? – Sirko

+0

@PRPGFerret當PHP通過AJAX執行時不會。 – Barmar

回答

2

您在查詢中使用了+符號。這隻在JavaScript中有效。請用積分! 另外,WHERE語句之前的符號不正確。

if($_GET['type']== "insert") { 
    $query = 'UPDATE prizes SET winner = '.$_GET['winner'].', time = NOW() WHERE prizecode = '.$_GET['giftcode'].' LIMIT 1'; 
    $insert_query = $db->query($query) ; 
    checkDBError($insert_query); 

    echo("something happened"); 
} 
+0

謝謝你,我沒有注意到。事情..我改變了代碼,如你所說,但似乎沒有發生! –

+1

我看你用這個JavaScript代碼來調用ajax腳本:$ .ajax(「ajax.php?type = insert&giftcode =」+ newarray [$ x] +「&winner = winner1」);你只能在你的javascript代碼中使用$ x。您應該使用<?php echo $ x; ?>或使用javascript計數 – ennovativemedia

+0

謝謝你的答案...實際上我解決了它....它的一個岩石錯誤 與此語句中的引號相關 $ query ='UPDATE prizes SET winner =「'。$ _GET ['winner']。'「WHERE prizecode =」'。$ _ GET ['giftcode']''LIMIT 1'; –

相關問題