PHP - 从数据库返回结果并将值传递给另一个函数

时间:2013-03-31 08:24:17

标签: php pdo

我有一个名为TariffFareController的类,我从数据库中获取正确的票价如下: -

class TariffFareController {

public static function getTourFare($fieldTour) {

       $pdo = new SQL();
       $dbh = $pdo->connect(Database::$serverIP, Database::$serverPort, Database::$dbName, Database::$user, Database::$pass);

       try {

           $query =   "SELECT Fare FROM tbltours
                       WHERE TourName = '$fieldTour'";

           $stmt = $dbh->prepare($query);

           $stmt->execute();

           $result = $stmt->fetchColumn();

           $stmt->closeCursor();

           return $result;

           $dbh = null;

       }

       catch (PDOException $pe) {
           die("Error: " .$pe->getMessage(). " Query: ".$stmt->queryString);
       }

}

}

然后我希望能够在私人获取票价功能中检查结果: -

private static function getFare($int_terminate) {

    // $tour_fare = (the result from getTourFare)

        if ($tour_fare != null) {

            // do something

        }

        else {

        // do something else

        }

    }

我如何从getTourFare获取$ result并在私有getFare函数中使用它?

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:3)

如果两个函数属于同一个类,只需执行

$tour_fare = self::getTourFare();

否则你可以使用

从课外调用它
$tour_fare = TariffFareController::getTourFare();

请注意,getTourFare()函数中$dbh = null;行将从不执行',因为您在执行之前从返回它。我还要说,我认为该行无用,因为$dbh变量无论如何都会超出范围。

答案 1 :(得分:0)

你可以这样做。

通过getFare调用getTourFare,如果返回数据,do可以处理数据而不是返回false,你做任何事情。

class TariffFareController {


private static function getFare() {
    if (self::getTourFare("any_field")) {
        /* Data success */
    } else {
        /* No data */
    }
}
public static function getTourFare($fieldTour) {

   $pdo = new SQL();
   $dbh = $pdo->connect(Database::$serverIP, Database::$serverPort, Database::$dbName, Database::$user, Database::$pass);

   try {

       $query =   "SELECT Fare FROM tbltours
                   WHERE TourName = '$fieldTour'";

       $stmt = $dbh->prepare($query);

       if (!$stmt->execute()) return false;

       if ($stmt->rowCount() > 0) {
           $result = $stmt->fetchColumn();

           $stmt->closeCursor();

           return $result;
       } else {
           return false;
       }

       $dbh = null;

   }

   catch (PDOException $pe) {
       die("Error: " .$pe->getMessage(). " Query: ".$stmt->queryString);
   }

}

}