【问题标题】:Calling Array from class PHP从 PHP 类调用数组
【发布时间】:2014-04-28 08:47:53
【问题描述】:

所以我试图调用从数据库生成的数组,这是类文件中的函数:

public function select($array) 
{
   try 
   {
       $result ="SELECT id,make,model FROM cars";

       $stmt = $this->db->query($result);
       $array = $stmt->fetchAll();
   } 
   catch (PDOException $e) 
   {
       echo $e->getMessage();
   }
}

我在这里尝试调用数组,至少我对此很陌生。

    include ('CarsDb.class.php');
    $db = new CarsDb();
    $db->connect();
    $carArray = $db->select($array);
    var_dump($carArray);

现在 var_dump 只显示 NULL,但是如果我将 var_dump 放入函数中,它将在我的页面上显示数组,所以有人可以帮助我吗?

【问题讨论】:

  • 选择函数中缺少返回语句 ...

标签: php arrays database function class


【解决方案1】:

你需要从你的函数中返回一个值。这样做。

public function select($array) {
    try {
        $result ="SELECT id,make,model FROM cars";
        $stmt = $this->db->query($result);
        return $stmt->fetchAll(); //Return value here
    } catch (PDOException $e) {
        echo $e->getMessage();
    }
}

现在应该可以了。

include ('CarsDb.class.php');
$db = new CarsDb();
$db->connect();
$carArray = $db->select($array);

【讨论】:

  • 成功了,非常感谢,帮我省了很多麻烦。
  • @JayBhatt 请考虑尝试阻止失败的情况。
  • @RajeevRanjan 该函数返回的数组只有在查询成功时才会被初始化。如果抛出异常,则数组将为空。代码应该处理异常,而不是返回空值。
【解决方案2】:

从选择函数返回数组

public function select($array=array()) {
try {

    $result ="SELECT id,make,model FROM cars";

    $stmt = $this->db->query($result);
    $array = $stmt->fetchAll();



} catch (PDOException $e) {
    echo $e->getMessage();
}
return $array;

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    相关资源
    最近更新 更多