2012-04-30 172 views
0

這裏還有一個奇怪的一個:PHP,MYSQL記錄未更新

這裏是我的PHP:

$query = "SELECT iVal, iOwn FROM item WHERE item = ".$_GET['Item']; 
$result9 = mysql_query($query, $_SESSION['connect']); 
$row9 = mysql_fetch_array($result9); 
$query = "UPDATE chars SET chCred = chCred + ".$row9['iVal']." WHERE chNum = ".$row9['iOwn']; 
mysql_query($query, $_SESSION['connect']) or die('Error 2:'.mysql_error()); 

當我運行它,並做$查詢的var_dump我得到這個:

UPDATE chars set chCred = chCred + 100000 WHERE chNum = 2 

當我在phpMyAdmin中運行這個查詢時,記錄得到了正確更新,但是當我運行代碼時記錄沒有被更新,我也沒有收到錯誤信息。

+4

您的第一個('SELECT')查詢容易受到SQL注入的影響。你真的**應該使用準備好的語句,將你的變量作爲參數傳遞給你,這些參數不會被SQL評估。如果你不知道我在說什麼,或者如何解決它,請閱讀[Bobby Tables](http://bobby-tables.com)的故事。 – eggyal

+0

如果你使用[一些錯誤處理](http://snipplr.com/view/45252/goede-foutafhandeling-mysql/),你會得到什麼? –

+0

另外,也使用'mysql_error()'的鏈接標識符。 'mysql_error($ _ SESSION ['connect'])' – Shocker

回答

0

Web服務器上的數據庫連接是否需要您手動提交更新?如果SQL在手工輸入時正常工作,那麼您的數據庫連接沒有自動設置,或者將查詢傳遞到數據庫時出現問題,正如其他人所說的那樣,您可以通過添加錯誤處理來檢查數據庫。