zend框架:在开始另一个之前等待查询完成

问题描述:

在我在zend框架中创建的Web应用程序中,我为每个注册的新客户端创建一个新的数据库。由于我们需要创建一个数据库,创建大约10个表并在表中放入一些数据,所以这个查询当然是相当繁重和耗时的。zend框架:在开始另一个之前等待查询完成

我们正在使用我们读入的一个大型SQL文件和exec()。

这些查询后,在ZF另一个MySQL连接,我需要在已经在上一步中创建一个表中插入一个新的记录。

这是失败的地方:当第一个查询还没有完成时,我尝试在正在创建的表上插入数据,我得到一个错误“table xxxx does not exist”。

所有这些都发生在几分之一秒内,但我找不到第一个大型查询“完成”的方法。

在第二条语句解决了这个问题之前先进行睡眠(2)命令,但这不是我们想要玩的方式。

另外,我们不能使用事务,因为我们使用的是CREATE DATABASE和其他不能用于事务的语句。

每个客户端一个数据库就是一堆蠕虫,在蠕虫失控之前,您几乎可以肯定地想消除这些蠕虫。在每个表中使用带有client_id字段的单个数据库来指示记录属于哪个客户端。 (这意味着增加了一个新的表来保存客户记录本身。)

+0

我们在想到这个,我们需要为我们的客户不同的数据库不仅是数据安全的一个额外层,而且确保我们可以以每个用户为基础轻松恢复备份。 – Jorre 2010-09-22 19:31:44

+0

我会再次发表评论,每个客户端的新表格听起来像是一场灾难。这就是说,睡觉(2)可能是你诚实的最好的选择。 – 2010-09-23 03:13:29

+0

你能否澄清为什么每个客户端的新数据库是灾难的秘诀? – Jorre 2010-09-23 08:04:43