2012-08-31 48 views
-1

運行UPDATE查詢的mysql_query不適用於我,我做錯了什麼?mysql_query更新不更新

if($get_ip['user_ip']== ''){ 
    $insert_ip = mysql_query("UPDATE user SET user_ip='$user_ip' WHERE username='$username' AND password='$password'"); 
    if(!$insert_ip){ 
     $message = 'invalid query'.mysql_error(); 
     die($message); 
    }else{ 
     echo ('success!'); 
    }; 
}; 

基本上我試圖更新user_ip行的值爲ip_user的表用戶,如果user_ip字段爲空,當然。

所以沒有更新和user_ip提交仍然是空的請幫助。

+0

它是否會返回任何錯誤消息? –

+0

添加標籤php,因爲這不是純粹的mysql –

+0

沒有空白。 – Remir

回答

0
if($get_ip['user_ip']== '') 

將不起作用,除非$ get_ip ['user_ip']爲空。

使用

if(!empty($get_ip['user_ip'])) 

代替

+0

也嘗試過,沒有工作。我知道user_id字段爲空的事實 – Remir

+0

mysql返回什麼錯誤? –

+0

沒有錯誤這就是爲什麼我很困惑,某種故障或東西 – Remir

1

有兩件事情我可以在你的腳本看到。

  1. 您使用if($get_ip['user_ip']== '')語句,將插入數據時$get_ip['user_ip']僅僅是空的,或者它會忽略插入數據時$get_ip['user_ip']有一些數據。

  2. 您正在使用SET user_ip='$user_ip'上更新查詢,我可能不正確,但我認爲你正試圖將數據從存儲$get_ip['user_ip'],如果這是你的插入查詢的情況下使用SET user_ip='$get_ip['user_ip']'代替SET user_ip='$user_ip'

0

只是有SOOOO很多事情錯在這裏,但被幫助的利益:

指定的查詢字符串變量,而不是直接將其注入mysql_query功能。然後,echo這個字符串出來了。這會顯示你想要發送到數據庫。將該輸出複製到某處,然後登錄到您用來管理數據庫的任何內容(我假設它將是phpMyAdmin)。打開您的數據庫,然後打開您的目標表,然後使用查詢編輯器運行您的查詢(粘貼您先前複製的輸出)。

  • 如果您的查詢字符串不是您所期望的,則會出現代碼錯誤。
  • 如果您的查詢符合您的預期,並在數據庫工具中運行,則您的 可能與您在連接字符串中使用的用戶帳戶存在權限問題。
  • 如果您的查詢符合預期,但在您的 數據庫工具中運行不正確,那麼您的問題很可能是模式錯誤。