Как импортировать шейп-файл в postgresql с помощью переполнения стека

Команда ниже успешно загружает шейп-файл в postgresql через cmd.

shp2pgsql -I -s 4326 E:\SAITEJA_AND_VISHAL\sampleData\dist_bnd.shp  haryana | psql -U postgres -d haryana

Я не могу сделать это через php. Пожалуйста, помогите мне решить эту проблему.

<?php

$command = 'C:\Program Files\PostgreSQL\9.6\bin.exe shp2pgsql -I -s 4326 E:\SAITEJA_AND_VISHAL\sampleData\dist_bnd.shp  haryana | psql -U postgres -d haryana';
$output = exec($command);
print_r($output);
?>

заранее спасибо

0

Решение

У меня возникла точно такая же проблема (команда работает в cmd, но ничего при вызове через PHP). Что мне очень помогло, так это получение сообщения об ошибке (добавив: 2>&1’& $ Выход). Моя команда выглядела примерно так:

?php
exec("\"C:\Program Files\PostgreSQL\9.6\bin\shp2pgsql.exe\" -s 28992 -I -W
latin1 D:\somefolder\someshape.shp someschema.example_shape | psql -U postgres -h localhost -d somedbname 2>&1", $output);
foreach ($output as $key => $value)
{echo $value;}
?>

Возвращено: «psql не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл». Мое исправление состояло в том, чтобы определить полный путь к исполняемому файлу psql в команде следующим образом:

<?php
exec("\"C:\Program Files\PostgreSQL\9.6\bin\shp2pgsql.exe\" -s 28992 -I -W
latin1 D:\somefolder\someshape.shp someschema.example_shape | \"C:\Program
Files\PostgreSQL\9.6\bin\psql.exe\" -U postgres -h localhost -d somedbname");
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]