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);
}
4

5 回答 5

3

查看mysql_affected_rows()函数,它将返回刚刚更新的行数。此外,尽量避免使用 mysql_* 函数来支持 mysqli_* 或 PDO,因为它们现在已被弃用。

于 2013-04-18T17:24:58.253 回答
0

首先,强烈建议不要使用mysql_*函数,因为它们自PHP v5.5.0起已被弃用。

您可以直接使用$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);
}
于 2013-04-18T17:27:00.123 回答
0

如果上述查询成功,则$result变量将具有数字 1 作为 $result 否则它将具有另一个值,因此您可以像这样简单地测试它

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

试试这个并告诉我结果:)

于 2013-04-18T17:27:24.433 回答
0

手册指出,如果更新有效,则更新的返回值为 true,否则为 false,因此您可以继续检查更新的值$return以查看更新是否有效。

于 2013-04-18T17:28:26.753 回答
0

不要使用 $result ,因为只要查询没有导致错误,它就会始终为真。如果 Where 子句没有命中,则不会更新任何内容,也不会导致错误。所以结果仍然是正确的。

按照 Alex 的建议使用 mysql_affected_rows 来了解已更新的记录数。

就这样吧if ($result && mysql_affected_rows() )...

于 2013-04-18T17:53:13.770 回答