Php重定向头()

时间:2011-12-22 04:32:03

标签: php mysql

如果我使用一个大型函数来更新MySQL上的数据然后执行header("Location: somepage"),那么PHP会在所有这些更新查询完成之前等待,然后重定向还是我必须考虑到这一点?

3 个答案:

答案 0 :(得分:4)

PHP代码以可预测的顺序模式执行,自上而下。

如果运行某些数据库查询,数据库服务器将处理它们,PHP的线程不处理写入本身(只是传递查询)。

MyISAM表在写入时被锁定,并且我非常确定UPDATE查询是atomic(意味着他们要么都做或不做 - 他们不会让事情完成一半)

另外,稍微切向一点,发送exit标题后不要忘记Location。用户代理可以自由忽略Location标题。

答案 1 :(得分:4)

是的,PHP将按顺序执行每个命令,并且只有在更新查询报告成功后才会到达重定向语句。

答案 2 :(得分:1)

来自php文档

  

对于其他类型的SQL语句,INSERT,UPDATE,DELETE,DROP等,   mysql_query()成功时返回TRUE,错误时返回FALSE。

然后......如果它返回成功或失败,它必须等到更新完成。