我使用yiimongodbsuite扩展连接到mongodb,如何在php中执行mongoimport命令,这里是我的代码,
<?php
// connect
$m = new Mongo("mongodb://192.168.1.7:27017");
$db = $m->test;
$collection = $db->cartoons;
$db = 'mongoimport --db test --collection ' . $collection . ' --file test.csv --type csv';
//Here after how to proceed to import the data??
?>
答案 0 :(得分:2)
首先,yiimongodbsuite与执行shell命令无关,它只使用mongodb php驱动程序。
您只是用字符串覆盖$db
值。它没有做任何事情。
您也可以用以下代码替换所有代码:
<?php
$command = 'mongoimport
--db test
--collection cartoons
--file test.csv
--type csv
--host 192.168.1.7';
$result = exec($command);
虽然您php.ini
需要允许使用exec,但共享主机通常不允许这样做。您需要注意的另一件事是,您的脚本可能需要一些时间来执行,具体取决于您的csv有多大。
所以你可以通过添加:
来改善这一点<?php
ini_set('max_execution_time', 300); //300 seconds = 5 minutes
虽然这再次要求您的主持人允许您首先执行ini_set()
。
Curtsy向@ asya-kamsky指出主持人