我正在使用ZF2开发一个应用程序。在我的应用程序中,我必须在数据库中插入许多行(大约900行)。
我有一个表格模型,所以我首先尝试这样做:
$table->insert(array('x' => $x, 'y' => $y));在我的循环中。这在技术上是可行的,但它太慢了,以至于我很难在php的超时之前插入一半的数据(而且我也不能改变超时)。
然后,我决定使用准备好的语句。所以我在循环之外准备了它,然后在我的循环中执行它...它甚至更慢。
因此,我决定停止使用ZF2工具,因为它们似乎太慢,无法在我的情况下使用,我已经创建了自己的请求。我使用的是mysql,所以我可以用我所有的值做一个请求。但我在任何接口中都找不到任何方法来转义我的值...
有没有办法做到这一点?
谢谢你的帮助,并为我糟糕的英语感到抱歉。
发布于 2013-01-23 19:16:42
如果要执行原始查询,可以使用数据库适配器执行此操作:
$sql = 'SELECT * FROM '
. $adapter->platform->quoteIdentifier('users')
. ' WHERE ' . $adapter->platform->quoteIdentifier('id') . ' = ' . $adapter->driver->formatParameterName('id');
/* @var $statement \Zend\Db\Adapter\Driver\StatementInterface */
$statement = $adapter->query($sql);
$parameters = array('id' => 99);
/* @var $results Zend\Db\ResultSet\ResultSet */
$results = $statement->execute($parameters);
$row = $results->current();发布于 2013-10-11 02:53:19
使用事务:http://dev.mysql.com/doc/refman/5.0/en/commit.html将帮助您减少执行时间
https://stackoverflow.com/questions/13287731
复制相似问题