2012-04-24 70 views
0

我有以下代碼:MySQL的UPDATE語句沒有更新相關的表

$query = "UPDATE jobs SET `ipt` = '$ipt', `prejobform` = '$prejobform', `fileddate` = '$fileddate' WHERE `job_id` = '$jobid'"; 

    $result = mysql_query($query); 


    if (!$result) { 
     //ERROR LOGGER HERE 
     echo mysql_error(); 
    } 
    else { 
     header('Location: view_job.php?jobid='.$jobid); 
    } 

此代碼重定向就像是正確的行爲,但是當我檢查數據庫,該領域尚未更新。我敢肯定,這個問題很簡單,我錯過了,但我無法找到問題所在。

+2

'$ ipt','$ prejobform','$ fileddate','$ jobid'的值是什麼?查詢後'mysql_affected_rows()'的結果是什麼? – DaveRandom 2012-04-24 15:55:12

+2

如果在構造查詢字符串後回顯查詢字符串,並查看是否有任何明顯問題(如果沒有看到它,請將其粘貼到此處),可能會有所幫助。 – rawb 2012-04-24 15:57:01

+0

嘗試直接在MySQL上執行相同的查詢,無論是從控制檯還是客戶端 - 如果您確定PHP代碼已正確構建SQL。查詢確實可能執行,但根據指定的值更新了0行。 – 2012-04-24 16:02:47

回答

0
  1. 對於UPDATE查詢,mysql_query返回true,如果查詢成功(被解析並正確執行),不僅是如果它真的沒有更新任何行。

  2. 如果基礎表爲InnoDB並且您之前啓動了事務,則查詢將不會隱式提交事務,並且在您退出腳本或斷開連接時它將回滾。