2013-04-18 94 views
0

只有當table1中的更新成功時,如何更新下面的代碼中的table2?如果其他表更新成功,則更新表

$sql="update table1 set col1='abc' where col2='1'"; 
$result=mysql_query($sql); 
if(that is success) 
{ 
    $sql="update table2 set col1='cde' where col2='1'"; 
    $result=mysql_query($sql); 
} 

回答

3

查看mysql_affected_rows()函數,它將返回剛剛更新的行數。此外,儘量避免使用mysql_ *函數來支持mysqli_ *或PDO,因爲它們現在已被棄用。

+0

這是有幫助的, 謝謝... :) –

0

首先,強烈建議而不是使用mysql_*功能,因爲它們從PHP v5.5.0被棄用。

可如果上述查詢成功,因此$result變量將是$導致否則將有另一個值如此簡單,你可以測試它像1號與$result可變

$result = mysql_query($sql); 
if (!$result) { 
    die('Update failed: ' . mysql_error()); 
} else { 
    $sql="update table2 set col1='cde' where col2='1'"; 
    $result=mysql_query($sql); 
} 
0

直接檢查這

if($result == 1) 
{ 
    //Your second update result 
} 

試試這個,告訴我結果:)

+0

@Jomin喬治:請當你問一個問題通過回答添加評論,如果它是有益的和有用的更新也對不能解決你的問題的答案,所以你可以得到最大的幫助,那麼如果問題得到解決接受最有用的答案:) –

0

manual狀態返回值的更新爲true,如果更新正常,否則爲false,因此您可以繼續檢查$return的值以查看更新是否正常。

0

不是只使用$結果,因爲只要查詢沒有導致錯誤,它將始終爲真。如果Where子句沒有命中,則不會更新,也不會導致錯誤。所以結果依然如此。

使用mysql_affected_rows作爲亞歷克斯建議知道有多少記錄已被更新。

所以做if ($result && mysql_affected_rows()) ...