我有一个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 :(得分:0)
我很确定,您的数组$d
是&#34;多维&#34;并且pg_fetch_array()
返回一个数组数组,因为SQL查询的结果通常可能包含多行。你将它限制在一行,但你肯定通过分配$return['livedata'] = $d[0]['dstart'];
或$return['livedata'] = $d['dstart'][0];
等来获得正确的值(我不熟悉特别的功能,因为我通常使用MySQL而不是Postgre)。
此外,请尝试使用print_r()
代替echo
来回显您的数据。
答案 1 :(得分:-1)
$ return变量是一个数组,如果要显示内容,则必须使用print_r或var_dump而不是echo。