Проблемы с PHP в массиве

У меня есть таблица postgres с четырьмя столбцами, помеченными dstart, который является типом данных даты,
dend, который также является типом данных даты, dcontract, который является типом данных даты, и id, который является целым числом. Я пытаюсь запустить php-код, чтобы получить данные с помощью массива и использовать их в теле моего приложения. Но когда я тестирую массив и пытаюсь отобразить некоторые значения … Мой браузер просто отображает слово «массив» … Могу ли я в любом случае получить данные или исправить этот код? Пожалуйста, смотрите код ниже

  <?php

function getLiveDate($campid)
{
global $conn,$agencies;$return=array(
'livedate'=>'',
'campid'=>'',
'enddate'=>'',
'dateContract'=>'',
);

$sql = "SELECT id, dcontract, dstart, dend
FROM campaigns
WHERE id = '".$campid."' ORDER BY dstart DESC LIMIT 1";

$r = pg_query($conn,$sql);
if ($r)
{
$d = pg_fetch_array($r);
if (!empty($d))
{

$return['livedate'] = $d['dstart'];
$return['campid'] = $d['id'];
$return['enddate'] = $d['dend'];
$return['dateContract'] = $d['dcontract'];
}
}
@pg_free_result($r);

return $return;
}

0

Решение

Я уверен, ваш массив $d является «многомерным» и pg_fetch_array() возвращает массив массивов, поскольку результат SQL-запросов в общем случае может содержать несколько строк. Вы ограничили его одной строкой, но вы, конечно, получите правильные значения, задав $return['livedata'] = $d[0]['dstart']; или же $return['livedata'] = $d['dstart'][0]; и так далее (я не знаком с этой конкретной функцией, потому что я обычно использую MySQL вместо Postgre).
Кроме того, попробуйте повторить ваши данные с помощью print_r() вместо echo,

0

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

Переменная $ return — это массив, если вы хотите показать содержимое, вы должны использовать print_r или var_dump, а не echo.

-1

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