я именно это и называл прямым обращением, после того как я вызываю функцию, которая соединяется со сторонней базой данных, извлекает всю интересующую меня информацию и закрывает соединение, вордпресс начинает ругаться на отсутствие соединения с базой данных… если не закрывать соединение, то тоже ничего толкового не выходит.
вызываемая функция выглядит примерно так:
<?php
function device_exists($sn, $imei)
{
$web = pg_connect("host=localhost dbname=web user=user password=password");
if (!$web) {
echo "<center>Произошла ошибка при соединении с базой web.Попробуйте зарегистрироваться еще раз.<br>";
echo "<input type='button' value='Вернутся к редактированию данных' onClick='history.go(-1)'></center>";
exit;
}
$device_test = pg_query($web,'SELECT imei, sn, regstr FROM web.device');
if (!$device_test) {
echo "<center>Произошла ошибка при обращении к списку устройств. Попробуйте зарегистрироваться еще раз.<br>";
echo "<input type='button' value='Вернутся к редактированию данных' onClick='history.go(-1)'></center>";
exit;
}
$device_sn = 0;
$device_imei = 0;
$device_reg = 0;
while ($row = pg_fetch_array($device_test))
{
if(strcmp(strtolower($row['sn']), strtolower($sn))==0)
{
$device_sn = 1;
if(strcmp(strtolower($row['imei']) , strtolower($imei))==0)
{
$device_imei = 1;
if(strcmp(strtolower($row['regstr']), 'f')== 0 )
{
$device_reg = 1;
}
}
}
}
pg_close($web);
if($device_reg == 1){
return false;
}else
return true;
}
?>
Модератор
Юрій
(@yube)
С mysql этот номер проходит на ура. Думаю, разница в поведении связана с тем, что Создатели WP позаботились о том, чтобы в каждой функции mysql_* был явно указан хэндлер открытой базы, а авторы плагина, «который обучает wordpress работе с PostgreSQL«, используют базу «по умолчанию», то бишь последнюю подключенную.
Спасибо) А вы не могли бы подсказать плагин, «который обучает wordpress работе с PostgreSQL», в котором все будет прописано нормально? или нужно перекапывать все файлы pg4wp, и прописывать вручную?
Модератор
Юрій
(@yube)
Не мог бы — просто не знаю. Учитывая, сколько плагинов написано из расчета использования mysql, я бы вообще не рискнул использовать pgsql.
Не думаю, что файлов для перекапывания сильно много. А в правке нуждается, скорее всего, вообще один.
спасибо еще раз. попробую исправить плагин. я бы тоже не стал использовать PostgreSQL, но это, к сожалению, входило в задание.