【发布时间】:2014-03-24 04:36:05
【问题描述】:
我是 OOP 和 PDO 领域的新手,在一个函数中返回数据并希望在另一个函数中使用该数据时,我只需要一点帮助。
下面是我从我的数据库中获取所有壁虎数据的函数,目前我让它打印出数组,所以我知道它正在工作。
函数getGecko:
public function getGecko($geckoName){
$dbh = $this->dbh;
try {
if (!$geckoName) {
throw new Exception("No gecko name set!");
}
$stmt = $dbh->query("SELECT * FROM geckos WHERE gecko_name = '$geckoName'");
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$row_count = $stmt->rowCount();
$row = $stmt->fetch();
if($row_count > 0){
print_r($row);
return true;
} else {
echo 'No information found for '.$geckoName.'!';
return false;
}
}
catch (Exception $e) {
echo $e->getMessage();
}
}
输出为 - Array ( [gecko_id] => 1 [gecko_name] => Zilly [gecko_aquisition_date] => 0000-00-00 [gecko_type] => Normal [gecko_gender] => Male [gecko_traits] => [gecko_bio] => Hench bastard [gecko_health_check] => All good! [gecko_bred] => 0 [gecko_hatchling] => 0 [gecko_clutch] => [gecko_photo] => ) - 没问题。
但我想在一个名为 getMorph 的函数中使用该数据来利用 [gecko_type] => Normal。我试过这样的事情:
public function getMorph($geckoName){
$this->getGecko($geckoName);
echo $row['gecko_type'];
}
但它什么也不返回。我非常习惯于程序意义上的 php,我只是想改善自己和我的代码,并想陷入 OOP。如果这被认为是“菜鸟”问题,我深表歉意,但正如我所说,我正在努力学习。
感谢您的宝贵时间:)
【问题讨论】:
-
$row 在 getMorph 中定义在哪里?您应该将某些内容返回给变量吗? $this->getGecko($geckoName);返回 true 但从不给变量