Соединение Php и базы данных и amp; конкатенация [дубликат]

В эти дни я использую почтовый клиент Clever Component, хотя и не бесплатный.

Элементы управления TurboPower Internet (OpenSource) отлично работали для меня в прошлом.

27
задан hrshd 16 September 2011 в 14:33
поделиться

15 ответов

Easy install for ubuntu:

Just run,
> sudo apt-get install php5-pgsql
 then
> sudo service apache2 restart //restart apache

или

Uncomment the following in php.ini by removing the ";"

;extension=php_pgsql.dll

then
restart apache 
14
ответ дан Angelin Nadar 16 August 2018 в 14:34
поделиться
  • 1
    Я уверен, что для Debian / Ubuntu нам не нужно перезапускать apache2. – Yasiru G 26 August 2013 в 05:40
  • 2
    В моем случае по-прежнему необходимо раскомментировать следующую строку: extension = php_pdo_pgsql.dll – Ronald Araújo 13 April 2015 в 16:47
  • 3
    Я не прокомментировал эту строку, но я не знал, что должен перезапустить Apache. Я использую XAMPP в Windows, и мне пришлось перезапустить сервер Apache, чтобы он работал. Спасибо за решение. – Fearnbuster 5 February 2018 в 22:05
  1. Добавьте 'PHPIniDir' C: / php "в файл httpd.conf (если у вас есть ваш PHP, сохраненный в C :, или укажите место, где сохраняется PHP).
  2. Раскомментировать следующий «extension = php_pgsql.dll» в файле php.ini
  3. Uncomment '; extension_dir = "ext"' в каталоге php.ini
5
ответ дан Chetan 16 August 2018 в 14:34
поделиться
  • 1
    Пожалуйста, не добавляйте & quot; благодарю вас & quot; как ответ. Когда у вас будет достаточно репутации , вы сможете проголосовать за вопросы и ответы , которые вы нашли полезными. – Bono 13 March 2015 в 14:23
  • 2
    но я попытался дать решение, добавив дополнительный шаг для уже существующего предыдущего решения – Chetan 13 March 2015 в 14:53
  • 3
    Ах, хорошо. Не могли бы вы улучшить свой ответ, потому что мне было непонятно, что был дополнительный шаг;) – Bono 13 March 2015 в 14:56

Я столкнулся с этой ошибкой, и в итоге это связано с тем, как загружается PHP extension_dir.

Если при печати phpinfo () вы обнаружите, что в PDO-заголовке PDO-драйверу установлено значение no value , вы можете проверить, что вы успешно загрузили свой каталог расширений, как описано в этом сообщении:

https://stackoverflow.com/a/14786808/2578505

0
ответ дан Community 16 August 2018 в 14:34
поделиться

У меня был тот же симптом в win7. Я получил этот скрипт:

<?php
    phpinfo();
    pg_connect("blah");

Когда я выполнил скрипт phpinfo.php через apache ( http: //localhost/phpinfo.php ), я получил сообщение об ошибке: Вызов неопределенной функции pg_connect () в ...

Когда я выполнил тот же скрипт из командной строки (php phpinfo.php), то получил ожидаемое сообщение: PHP Warning: pg_connect (): Не удается подключиться к серверу PostgreSQL: отсутствует «=» после «blah»

В обоих случаях использовался ожидаемый php.ini:

Loaded Configuration File   C:\Program Files (x86)\php\php.ini 

, но pgsql раздел полностью отсутствовал из phpinfo в случае выполнения на основе apache и присутствовал в выполнении на основе командной строки.

Решение состояло в том, что я добавил следующую строку в apache httpd.conf :

LoadFile "C:/Program Files (x86)/php/libpq.dll"

Кажется, что по какой-то причине этот файл не загружается автоматически, когда apache запускает php-скрипт, но он загружается, если я запускаю php-скрипт из командной строки.

Я надеюсь, что это помогает.

1
ответ дан Csongor Halmai 16 August 2018 в 14:34
поделиться

Неустранимая ошибка: вызов неопределенной функции pg_connect () ...

У меня была эта ошибка, когда я устанавливал Lampp или xampp в Archlinux,

. Решение было отредактировано php .ini, он находится в /opt/lampp/etc/php.ini

, затем найдите эту строку и раскомментируйте

extension = "pgsql.so"

затем перезапустите сервер apache с помощью xampp и проверьте ...

Удача

7
ответ дан davidleosam 16 August 2018 в 14:34
поделиться

В ОС Windows найдите это в php.ini «php_pgsql.dll» и удалите «;» в расширении, вот и все :) Cheeers!

-1
ответ дан james juventud 16 August 2018 в 14:34
поделиться

Edit. Я просто заметил, что вы упоминаете МАМП. Мой совет для Windows, но может быть полезен, если вы знаете, какие соответствующие инструменты использовать.

Что попробовать :

  • Вы перезапустили PHP и Apache с момента вашего редактирования php.ini?
  • Является ли php_pgsql.dll найденным в вашем каталоге php \ ext?
  • Вы используете php в качестве модуля? Если да, попробуйте скопировать файл php_pgsql.dll в каталог Apache \ bin.
  • Вы используете PHP из командной строки с флагом, указывающим другой файл php.ini?
  • Вы можете попробовать использовать такой инструмент, как Sysinternals 'Filemon, чтобы посмотреть, какие файлы пытаются получить доступ при запуске PHP.
  • Вы можете попробовать использовать такой инструмент, как Dependency Walker, для поиска зависимостей для библиотеки postgreSQL , если у вас есть недостающая зависимость. Быстрый поиск поднял ldd для Unix.
6
ответ дан JRL 16 August 2018 в 14:34
поделиться
  • 1
    В моем случае копирование php_pgsql.dll в apache / bin исправило это! – Davincho 28 December 2013 в 04:50

В Gentoo используйте postgres флаг USE в файле /etc/portage/make.conf и re emerge "emerge php"

0
ответ дан kemals 16 August 2018 в 14:34
поделиться

установите необходимый пакет. если вы используете yum:

yum search pgsql

, посмотрите на результат и найдите что-то вроде «php-pgsql» или что-то в этом роде. скопируйте имя и затем:

yum install *paste the name of the package here*
0
ответ дан Maya SC 16 August 2018 в 14:34
поделиться

У меня также была проблема с OSX. Решение было раскомментировано extension = pgsql.so в php.ini.default и удалением суффикса .default, так как файла php.ini не было.

Если вы используете XAMPP, файл php.ini находится в / XAMPP / xampfiles / etc

1
ответ дан sav 16 August 2018 в 14:34
поделиться

Для тех из вас, у кого есть эта проблема с PHP 5.6, вы можете использовать следующую команду:

yum install php56w-pgsql

Для получения списка дополнительных имен пакетов для PHP 5.6 откройте следующую ссылку и прокрутите вниз к пакетам:

PHP 5.6 на CentOS / RHEL 7.0 и 6.6 через Yum

0
ответ дан SPRBRN 16 August 2018 в 14:34
поделиться

Вы должны выполнить следующие действия:

Откройте файл конфигурации php, который находится в следующем каталоге

C: \ xampp \ php \ php.ini

. Внутри этого файла найдите раздел расширения и раскомментируйте следующие строки

extension = php_pdo_pgsql.dll  
extension = php_pgsql.dll

и перезапустите apache

0
ответ дан Vega 16 August 2018 в 14:34
поделиться

Вам нужно установить пакет php-pgsql или что-то еще, что оно вызвало для вашей платформы. Который я не думаю, что вы сказали, кстати.

В Ubuntu и Debian:

sudo apt-get install php5-pgsql
41
ответ дан Wayne Conrad 16 August 2018 в 14:34
поделиться
  • 1
    Я бегу Mac OS X Lion. Я попробую ваше решение и скоро вернусь. Спасибо. – hrshd 27 September 2011 в 01:27
  • 2
    Это был недостающий компонент для меня. Благодаря! Я нашел это решение, открыв файл журнала Apache по адресу: /var/log/apache/error.log. В строке указано: отсутствует функция pg_connect () – anon58192932 3 October 2012 в 04:04
  • 3
    Благодарю. Это работало для меня на ubuntu, но мне также пришлось перезапустить apache с помощью sudo service apache2 restart. Надеюсь, это поможет кому-то другому. – snapfractalpop 7 November 2012 в 23:59
  • 4
    В настоящее время с пивом на Mac: brew install php56-pdo-pgsql – Nic Cottrell 27 May 2016 в 13:14
  • 5
    Недавно я начал новую работу, где я использую mac, поэтому ваш комментарий к моему ответу оказался полезным! Маленький мир. – Scott Marlowe 25 September 2017 в 02:03
1
ответ дан Alf Newman 6 September 2018 в 06:25
поделиться
0
ответ дан Adim Victor 29 October 2018 в 13:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: