我上了我的php脚本
$result1 = mysql_query("insert ignore into...this....
$result2 = mysql_query("insert into...that....
$result3 = mysql_query("insert ignore...again
这些都是不同的查询。
当第一个查询尝试插入时,如果它有重复记录,则不会输入此内容。
好吧,如果第一个查询没有输入任何内容,我不想运行第二个和第三个查询。
如果先没有输入任何内容,如何阻止2和3查询运行?请用PHP。
由于
答案 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()可能能够实现您的目标。