【发布时间】:2017-01-14 20:47:52
【问题描述】:
一个设备每 10 分钟生成不同行的 .db 文件。所有的 sqlite 文件都有同一个名为“wifi”的表。
我正在编写一个 php 应用程序来读取所有文件中的所有数据。我正在使用 ATTACH 方法来组合数据库。喜欢:
try {
$file_db = new PDO('sqlite::memory:');
$file_db->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$file_db->exec("ATTACH DATABASE 'wifi_16-09-02_09_44_06.db' AS db1");
//many more attached files here, like 1000 or 2000
$result = $file_db->query('SELECT * FROM db1.wifi UNION ALL SELECT * FROM db2.wifi, ...');
$file_db = null;
}
catch(PDOException $e) {
echo $e->getMessage();
错误:
SQLSTATE[HY000]:一般错误:1 附加数据库过多 - 最多 10 个
写完这段代码后发现sqlite attach有一个限制,默认是10,只能根据this增加到125。
如何附加数千个数据库?如果我的方法是错误的,解决这个问题的最佳方法是什么?
【问题讨论】:
-
您不需要一次将它们全部连接起来,是吗?读取后将当前的分离出来即可。
-
为什么不能为每个“数据库”打开一个新连接?