2013-10-15 70 views
1

更新多個領域都有着DATABSE 照片中成員的記錄存儲,它有的au_id,位置,接觸 & 電子郵件列。有一個安全面板,管理員可以在其中更改團體成員的詳細信息。完整的表單在這裏再次顯示存儲在數據庫中的值,因此如果管理員想要更改他/她可以在此處執行的任何值並提交該表單以更新記錄。成功提交我如何在數據庫

$name=$_POST['name']; 
$au_id=$_POST['au_id']; 
$position=$_POST['position']; 
$contact=$_POST['contact']; 
$email=$_POST['email']; 

我無法更新特定成員的記錄。我在我的數據庫中有主鍵id。我使用:

$save="UPDATE photos SET name = '$name', au_id = '$au_id', position = '$position', cell = '$contact', email = '$email' WHERE id = '6' "; 
$result=mysql_query($save); 

和推杆的檢查,這樣我可以知道,如果查詢成功運行與否,

if (mysql_num_rows($result)) 
{ 
    echo 'successfully updated'; 
} 
else 
{ 
    echo 'not updated'; 
} 

它給成功更新的消息,但是當我再次去檢查記錄沒有任何改變。我怎麼能弄清楚這個問題

+0

'echo $ save'並檢查查詢是否正確。 – vbrmnd

+0

'if(!$ result){echo mysql_error(); }'來檢查爲什麼$ result返回false。順便說一句。你總是使用id = 6。也許id = 6的列已經更新了? –

+0

@Rayal我剛剛粘貼了這一行id來理解,否則id會根據記錄預覽頁面中每一行的編輯按鈕始終得到改變。 – Nouman

回答

3
$save="UPDATE photos SET name = '".$name."', au_id = '".$au_id."', position = '".$position."', cell = '".$contact."', email = '".$email."' WHERE id = '6' "; 
$result=mysql_query($save); 
0
$save="UPDATE photos SET name = '$name', au_id = '$au_id', position = '$position', cell = '$contact', email = '$email' WHERE id = '6' "; 

if ($result=mysql_query($save)) 
{ 
    echo 'successfully updated'; 
} 
else 
{ 
    echo 'not updated'; 
} 
0

試試這個:
使用mysql_affected_rows()

$save="UPDATE photos SET name = '$name', au_id = '$au_id', position = '$position', cell = '$contact', email = '$email' WHERE id = '6' "; 

$result=mysql_query($save); 
$cnt=mysql_affected_rows(); 
if($cnt>0) 
{ 
    echo 'successfully updated'; 
} 
else 
{ 
    echo 'not updated'; 
} 

mysql_已被棄用功能

0

mysql_num_rows不應該被用於SQL querys它不返回結果集,如UPDATE,DELETE等。
mysql_query它自我似乎在某些情況下工作,如果mysql連接正確完成mysql_connect和db正確選擇使用mysql_select_db。所以你應該檢查SELECT查詢是否在那裏工作。
但是,如果其中一個字段包含「'」,例如,您的SQL查詢已摺疊。這不僅是導致錯誤的問題,而且是允許「SQL注入」的漏洞。你應該使用佔位符。如果由於某種原因無法使用佔位符,則必須使用mysql_real_escape_string來轉義您的字段。

0

正如你提到你的問題列有: -

name, au_id , position , contact & email

兩件事情我已經抓在你的代碼: -

1)你是提contact柱和您的更新與cell
2)您還沒有聲明$contact變量。

請正確的列名運行查詢,如果ID不是字符串,則沒有必要使用id = '6'可以使用id = 6

+0

不錯,我已經解決了我的問題,謝謝 – Nouman

+0

很高興幫助你.. :) – Roopendra

0

對於SELECT,SHOW,描述,解釋等語句返回的結果集,mysql_query()上返回的資源成功,或錯誤的FALSE。檢查這個link

對於其他類型的SQL語句,INSERT,UPDATE,DELETE,DROP等,成功mysql_query()返回TRUE或FALSE的錯誤。

所以你得到truefalse執行查詢,明顯mysql_num_rows(true)是沒有意義的。