我有两个桌子,一个叫管理,另一个叫许可。
在编辑用户时,我会在同一页上显示包括权限在内的所有信息。
当我单击“编辑”时,我可以更新信息,但是如果一个表得到更新,就会收到错误消息,甚至表也已成功更新。
$sql = " UPDATE admin SET username='test', password='test' WHERE id=1;";
$result = mysql_query($sql, $connection);
if( mysql_affected_rows( $result ) == 1 )
{
$sql = " UPDATE permission SET permission_name ='add_user', user='admin' WHERE user_id=1;";
$result = mysql_query($sql, $connection);
echo 'successfully';
}
else
{
echo 'some error';
}当我只是习惯于更改用户的权限时,它确实会给我带来错误,因为我没有改变任何东西。但是,如果我对管理表进行更改,一切都很好。
如果其中一个或两者都已成功更新,如何显示成功消息。
发布于 2012-07-08 22:44:40
您可以将这两个表连接在一起,同时更新它们:
UPDATE admin a
INNER JOIN permission b ON a.id = b.user_id
SET
a.username = 'test',
a.password = 'test',
b.permission_name = 'add_user',
b.user = 'admin'
WHERE a.id = 1发布于 2012-07-08 22:45:05
<?php
$success = true;
$sql = " UPDATE admin SET username='test', password='test' WHERE id=1;";
$result = mysql_query($sql, $connection);
if(!mysql_affected_rows( $result ))
$success = false;
$sql = " UPDATE permission SET permission_name ='add_user', user='admin' WHERE user_id=1;";
$result = mysql_query($sql, $connection);
if(!mysql_affected_rows( $result ))
$success = false;
echo ($success ? 'Success' : 'Error');发布于 2012-07-08 22:53:13
在这种情况下,Zane Bien的答案是最好的选择,但是对于不能组合查询的情况,您应该检查(!$result)而不是(mysql_affected_rows($result) == 1),因为您试图检查是否发生了错误(这将导致mysql_query返回false),而不是表中是否实际更新了任何行。
https://stackoverflow.com/questions/11387282
复制相似问题