我正在尝试运行.sh文件,该文件会将excel文件导入到我的数据库中。这两个文件都位于公用文件夹内的同一目录中。由于某种原因,exec命令没有被执行,或者没有任何错误发生。
.sh文件清单:
IFS=,
while read column1
do
echo "SQL COMMAND GOES HERE"
done < file.csv | mysql --user='myusername' --password='mypassword' -D databasename;
echo "finish"
在我的php文件中,我尝试了以下操作:
$content = file_get_contents('folder_name/file_name.sh');
echo exec($content);
和:
shell_exec('sh /folder_name/file_name.sh');
注意:我可以直接从gitbash执行sh文件,但是我希望使用Laravel控制器中的函数来完成。我正在使用Windows OS。
参考方案
您可以使用Laravel http://symfony.com/doc/current/components/process.html中已经存在的Symfony的Process Component
use Symfony\Component\Process\Process;
use Symfony\Component\Process\Exception\ProcessFailedException;
$process = new Process('sh /folder_name/file_name.sh');
$process->run();
// executes after the command finishes
if (!$process->isSuccessful()) {
throw new ProcessFailedException($process);
}
echo $process->getOutput();
Laravel 5错误报告抑制 - php在Laravel 4中,抑制E_NOTICE消息很容易;我似乎无法做到这一点,因为如果我添加error_reporting(E_ALL ^ E_NOTICE) 它只是被覆盖的任何地方。这似乎发生在这里:(index.php)$response = $kernel->handle( $request = Illuminate\Http\Request::…
检查对象是否已在集合中-Laravel - php当我循环一系列不同的结果时,我希望将对象添加到新集合中。查询:$osRed = Item::where('category', 'Hardware') ->where(function ($query) { $query->where('operating_system', '…
Laravel打印日志 - php我正在尝试在控制台上打印日志:我输入了:use Log; 然后在控制器中使用 Log::info('test log'); 但它不打印任何日志。 参考方案 我认为您需要在运行后检查storage/logs/laravel.logLog::info('test log'); 希望这对您有帮助
如何在部署中管理Laravel队列? - php我有一个用于Laravel的HA架构,具有多个Web和队列服务器以及零停机时间部署。它依赖Redis作为队列驱动程序。问题在于,在部署群集的滚动更新时,部署新版本的代码时,无法阻止新队列工作者处理来自旧代码版本的作业。Laravel中是否可以过滤来自与队列工作器不同的代码版本的作业? 参考方案 我看到2个解决方案,即使我从未尝试过,也不能保证它能正常工作,因…
碳“小时不能高于12” - php我的应用程式从前端开始有这个日期:'13 -07-2017 14:00'我会测试:try{ Carbon::createFromFormat('d-m-Y H:i', $date); }catch (\Exception $err){ return false; } 为什么总是返回此错误?InvalidArgumentException:…