首页 > 解决方案 > PHP PDO 数组结果为空,但 var_dump 返回完整结果

问题描述

我有以下 PHP 函数:

public function getCad($conn,$gov)
{   
    try
    {
        //if($gov=='All')
        //{

        //}
        //else
        //{
            $sql = "SELECT * FROM governorate 
            WHERE governorate_name=:gov 
            ORDER BY governorate_name ASC";
            $exec = $conn->prepare($sql);
            $exec->bindValue(':gov', $gov);
            $exec->execute();

            $result = $exec->fetch();
            return $result;
        //}
    }
    catch(PDOExcpetion $e)
    {
        return $e->getMessage();
    }
}

结果不返回任何数据。

当我使用var_dump($result);时,显示数据数组:

public function getCad($conn,$gov)
{   
    try
    {
        //if($gov=='All')
        //{

        //}
        //else
        //{
            $sql = "SELECT * FROM governorate 
            WHERE governorate_name=:gov 
            ORDER BY governorate_name ASC";
            $exec = $conn->prepare($sql);
            $exec->bindValue(':gov', $gov);
            $exec->execute();

            $result = $exec->fetch();var_dump($result);
            return $result;
        //}
    }
    catch(PDOExcpetion $e)
    {
        return $e->getMessage();
    }
}

在第一个脚本中,没有显示错误,如果 I var_dump($gov),则该值存在。

调用函数为:

<?php

require_once('../api.php');

$newApi = new api();
$conn = $newApi->connection();
$gov = 'Beirut';
$errorMsg = "Gov is not specified";
if(isset($gov))
{

    $res = $newApi->getCad($conn, $gov);
    return json_encode($res);
}
else
{
    return json_encode($errorMsg);
}

?>

标签: phpooppdo

解决方案


在您的调用脚本中尝试

echo json_encode($res);

代替

return json_encode($res);


推荐阅读