Использование первого не является по своей сути более безопасным, чем последнее, вам необходимо дезинформировать ввод, является ли он частью массива параметров или простой переменной. Поэтому я не вижу ничего плохого в использовании последней формы с $table
, если вы убедитесь, что содержание $table
безопасно (alphanum plus underscores?) Перед его использованием.
Ознакомьтесь с информацией на странице установки PHP PostgreSQL: http://us.php.net/manual/en/pgsql.installation.php
На сервере Windows , настроенный с помощью Apache, добавление следующей строки в httpd.conf для загрузки libpq.dll может сэкономить вам много времени:
LoadFile "C: / Program Files / PostgreSQL / 8.4 / bin / libpq.dll"
Обратите внимание, что вам придется изменить свою папку в соответствии с путем установки и версией PostgreSQL, которую вы установили. Также обратите внимание, что не рекомендуется иметь Apache и PostgreSQL на одном сервере для производственных сред.
Это мгновенно исправило мою установку.
Проблема со связанными библиотеками, пользовавшимися php_pgsql.dll - как libpq.dll, OpenSLL и т.д. Необходимо найти их (от распределения zip Пост-ГРЭС, от установленного psqlODBC драйвера и т.д.) и поместить их в папку, которая находится в ПУТИ. Что касается списка всего DLLs - используют Зависимость MS Walker (depends.exe).
Другой важный бит - Apache (при использовании Apache, который является) имеет свой собственный набор OpenSSL DLLs. Замените или просто переименуйте их так для не столкновения с теми, которые от распределения Пост-ГРЭС.
Единственное время я видел эту ошибку (и имя файла и путь расширения были определенно корректны) было, когда я пытался использовать неверную версию DLL, т.е. Я использовал тот, который был скомпилирован против другой версии PHP к тому, который я выполнял.
Удостоверяются, что Ваша версия является определенно той, скомпилированной против PHP 5.2.8.
Редактирование: или, полномочия на файле были установлены неправильно.
Проблема LIBPQ.DLL с php в Vista ...
Проверьте, чтобы уверен, что у вас действительно установлен postgres. Если вы устанавливаете php в Windows с помощью postgres API, без установки postgres, вы можете получить это предупреждение. Слишком легко просто щелкнуть все в установщике Windows ...
Закомментируйте соответствующую строку в php.ini.
Просто подумайте - убедитесь, что двоичные файлы Postgres находятся в пути SYSTEM, а не в вашем пользовательском пути. Как оказалось, это была проблема на моей машине. : -)
Редактировать:
Если подумать, это объясняет, почему Dependency Walker сообщал обо всех A-OK, но проблема все равно сохранялась - вы запускаете DW под своей учетной записью, а Apache работает как SYSTEM, и, следовательно, ваши личные настройки PATH будут недоступны.