2013-06-24 68 views
1

我正在PHP中創建一個腳本,它使用連接更新我在MySQL中的用戶,user_personal和user_extra表。當我使用mysql_query執行查詢時,它會返回true,但表格不會更新。執行連接更新查詢時,mysql_query返回true

我在線閱讀說明mysql_query如果失敗則返回false,如果成功則返回MySQL資源,並且還讀取這是PHP的已知錯誤。

這是有問題的查詢。

UPDATE users 
     INNER JOIN user_personal 
     ON users.id = user_personal.id 
     INNER JOIN user_extra 
     ON users.id = user_extra.id 
     SET 
     users.email      = '" . $user->email . "',    
     user_extra.life_condition  = '" . $user->life_condition . "', 
     user_extra.keycode    = '" . $user->keycode . "', 
     user_extra.contact_person_phone = '" . $user->contact_person_phone . "', 
     user_extra.doctor    = '" . $user->doctor . "', 
     user_extra.doctor_phone   = '" . $user->doctor_phone . "', 
     user_extra.doctorpost_phone  = '" . $user->doctorpost_phone . "', 
     user_extra.condition    = '" . $user->condition . "', 
     user_extra.allergy    = '" . $user->allergy . "', 
     user_extra.goal     = '" . $user->goal . "', 
     user_extra.attention_officer  = '" . $user->attention_officer . "', 
     user_extra.primary_respon  = '" . $user->primary_respon . "', 
     user_personal.name    = '" . $user->name . "', 
     user_personal.last_name   = '" . $user->last_name . "', 
     user_personal.insertion   = '" . $user->insertion . "', 
     user_personal.birthdate   = '" . $user->birthdate . "', 
     user_personal.sex    = '" . $user->sex . "', 
     user_personal.street_name  = '" . $user->street_name . "', 
     user_personal.house_number  = '" . $user->house_number . "', 
     user_personal.postal_code  = '" . $user->postal_code . "', 
     user_personal.city    = '" . $user->city . "', 
     user_personal.country   = '" . $user->country . "', 
     user_personal.tel_nr    = '" . $user->tel_nr . "', 
     user_personal.contact_person  = '" . $user->contact_person . "' 
     WHERE user_personal.name   = '" . $user->name . "' 

當我執行使用一個INNER JOIN功能查詢的一個小測試版返回的資源,相同的結果時,我離不開加入查詢。 我的服務器使用PHP 5.3.3和Apache版本2.2.15與MySQL服務器5.1.69。

你能解釋這是怎麼發生的嗎?有沒有解決這個問題的方法?

+0

您是否記得提交交易? –

+0

它不是一個事務sql,只是一個普通的查詢。 –

+0

檢查'mysql_affected_rows()'應該是0意味着你的更新語句不匹配任何行。 – DevZer0

回答

0

使用INSERT的時候我讀過PHP.net文檔和教訓,UPDATE,DELETE,DROP該方法返回true或false

當使用SELECT,SHOW,描述,解釋你會得到一個資源時,查詢成功,查詢失敗時返回false。

感謝您的評論傢伙。