【问题标题】:var_dump a variable return nothing in phpvar_dump 一个变量在 php 中不返回任何内容
【发布时间】:2016-10-18 17:39:02
【问题描述】:

我有一些变量并尝试回应它们,但我看到空结果(在实时服务器上测试)。我找不到我的错误,请帮助..

我的控制器:

function request($req)
{
    $tiki_url = "http://203.77.231.130/services/api.cfc?method=tariff&origin=CGK01.00&destination={TO_AREA}&weight=1";
    var_dump($tiki_url);

    $code = array();
    $this->db->select('*');
    $this->db->where('request_id = ', $req );
    $query = $this->db->get('excel');
    $sql= $query->result_array(); 
    var_dump($sql);

    foreach ($sql as $key) 
    {
        $ex =$key['excel_id'];
        $zipcode = $key['to_zipcode'];
        $request = $key['request_id'];
        $this->db->select('tariff_code');
        $this->db->where('zip_code = ', $zipcode );
        $query = $this->db->get('area_info'); 
        $tarif= $query->row_array();
        $kodepos = $tarif['tariff_code'] ;
        var_dump($kodepos);

        if(isset($code[$kodepos]))
        {
            $tiki_data = $code[$kodepos];
        } 
        else
        {
            $url = str_replace("{TO_AREA}",$kodepos,$tiki_url);
            $tiki_data = json_decode(file_get_contents($url),TRUE);
            $code[$kodepos] = $tiki_data ;
        }

        $tariff = $tiki_data['tariff'][3]['TARIFF'] ;
        var_dump($tariff);

        $data = array(
                'tariff'=>$tariff,
                );
        var_dump($data);

        $data_status = array(
            'status' => '2',
            );
        var_dump($data_status);

        $this->db->update('excel', $data, "excel_id =".$ex);
        $this->db->update('request',$data_status, "request_id=".$request);

        var_dump($key);

        echo json_encode(array("status" => TRUE, "total" => $tariff,"excel" => $ex ));
    }
}

所有 var_dump() 除了var_dump($tiki_url) 之外什么都不返回。我确信excel 表中有几条记录。我期望这个结果来自回显 json_encode(我从 localhost 上的测试中捕获):

【问题讨论】:

  • $sql 为空? $query 是什么? $this->db 是什么?

标签: php json codeigniter


【解决方案1】:

只有第一个返回数据,所以我们可以猜测 SQL 查询有错误。您可以使用is_array() 函数进行检查。

...
$sql = $query->result_array();
if ( ! is_array($sql)) {
    exit('Error.');
}
var_dump($sql);
...

【讨论】:

  • 我按照你的建议添加了 is_array(),但它什么也没给我:(
  • 对不起,它给了我array(0){}@Juno_okyo
  • @MaiMunah 我只是看一下 CI 的用户指南。您可以尝试进行一些更改:来自:$this->db->where('request_id = ', $req);到:$this->db->where('request_id', $req);来自: $this->db->where('zip_code = ', $zipcode );收件人:$this->db->where('zip_code', $zipcode);
  • 我根据您的建议进行了更改,但仍然无法正常工作。顺便说一句,关于where 语法,我在其他控制器中使用->where('request_id=',$req),但它工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-22
  • 1970-01-01
相关资源
最近更新 更多