PHP函数问题与数组

时间:2014-10-23 12:36:41

标签: php arrays postgresql web-deployment

我有一个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;
 }

2 个答案:

答案 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。