如果没有插入,限制第二个和第三个sql

时间:2009-10-22 21:00:52

标签: php mysql

我上了我的php脚本

$result1 = mysql_query("insert ignore into...this....
$result2 = mysql_query("insert into...that....
$result3 = mysql_query("insert ignore...again

这些都是不同的查询。

当第一个查询尝试插入时,如果它有重复记录,则不会输入此内容。

好吧,如果第一个查询没有输入任何内容,我不想运行第二个和第三个查询。

如果先没有输入任何内容,如何阻止2和3查询运行?请用PHP。

由于

3 个答案:

答案 0 :(得分:3)

使用mysql_affected_rows function获取受影响的行数:

$result1 = mysql_query("insert ignore into...this....");
if (mysql_affected_rows($result1) > 0) {
    $result2 = mysql_query("insert into...that....");
    $result3 = mysql_query("insert ignore...again");
}

答案 1 :(得分:2)

您应该使用交易:

mysql_query("begin");
$result1 = mysql_query("insert ignore into...this....");
if (mysql_affected_rows() > 0) {
    $result2 = mysql_query("insert into...that....");
    $result3 = mysql_query("insert ignore...again");
    mysql_query("commit");
} else {
    mysql_query("rollback");
}

编辑:这只有在你的表是InnoDB时才有效。 MyISAM表支持事务。

答案 2 :(得分:0)

我现在无法自己尝试,但看起来mysql_affected_rows()可能能够实现您的目标。