2015-04-07 54 views
-1

我不知道爲什麼我的數據庫沒有被更新。代碼運行並顯示成功消息,但數據庫保持不變。我檢查過我的語法無數次,並添加了mysql_error,但我不知道什麼是錯的。PHP的MySQL的更新語句不起作用(語法是正確的)

if (!empty($username) && !empty($extension) && !empty($location)) { 
          $q2 = mysql_query("SELECT * FROM `intranet`.`mmg_locations` WHERE `id`='{$location}' ") or die (mysql_error()) ; 
          $r2 = mysql_fetch_assoc(); 
          $q = mysql_query("UPDATE `intranet`.`mmg_cpd_users` SET `name` = '{$username}', `extension` = '{$extension}', `location`='{$location}' 
              WHERE `id` = '{$id}' ") or die (mysql_error()); 


          if ($q) { 
          echo '<p style="color: green;">The user '.$username.' has been successfully updated.</p>'; 
          } 
} 
+0

'$ id'從哪裏來?你可能是想從'$ r2'數組中獲得這個值? – jeroen

+0

我預先聲明瞭id的值。 $ id的值來自另一個查詢。我回應了$ id的價值和罰款。問題不在變量 –

+0

那麼,如果變量是正確的,語法是正確的,那麼就沒有問題了。對? – jeroen

回答

3

執行前在瀏覽器中打印$ q。從瀏覽器複製整個UPDATE語句並直接在phpmyadmin查詢瀏覽器中執行

$q = "UPDATE `intranet`.`mmg_cpd_users` 
     SET `name` = '{$username}', 
     `extension` = '{$extension}', 
     `location`='{$location}' 
     WHERE `id` = '{$id}' "; 

    echo $q; 
    die(); 
    if ($q) {... } 
+0

比答案更多評論,但它可能會解決問題:-) – jeroen