-2

まったく何も返さない次のスクリプトがあります。取得した最高のものは、bool(false) と言う var_dump です。error_log には何も記録されておらず、例外はスローされていません。

index.php:

require("php/bootstrap.php");
$campaign = new Campaign($_GET['campaign'], $mysql);

ブートストラップ.php:

define ("MYSQL_USER", "specialagent");
define ("MYSQL_PASS", "supertopsecret");
define ("MYSQL_HOST", "127.0.0.1");
define ("MYSQL_PORT", "3306");
define ("MYSQL_DB", "databasewithsecretinformation");


/* Auto include classes on instantiation */
function __autoload($class_name) {
    include 'classes/'.$class_name.'.php';
}

/* Connections */
try {
$mysql = new PDO("mysql:host=".MYSQL_HOST.";dbname=test", MYSQL_USER, MYSQL_PASS);
} catch(PDOException $e) {
die("There was a problem connecting to the database. Error: " . $e->getMessage());
}

キャンペーン.php

class Campaign {
protected $dbh;
private $campaign_id = "";
private $name = "";

public function __construct ($campaign_id, PDO $db) {

    //if ($campaign_id) {
        $this->setCampaignID($campaign_id);
        $this->dbh = $db;
        $this->loadCampaignInfo();
    //}
}


public function getCampaignID() {
    return $this->campaign_id;
}

public function setCampaignID($id) {
    $this->campaign_id = $id;
}

public function __destruct() {
    //$this->dbh = null;
}

public function loadCampaignInfo() {
    /* Get info from database */
    $sql = "SELECT * FROM campaigns WHERE campaign=:campaignID";

    try {
        echo "trying query...$sql<br />";
        if ($this->dbh instanceof PDO) {
            $stmt = $this->dbh->prepare($sql);
            $stmt->bindParam(":campaignID", $this->campaign_id, PDO::PARAM_STR);
            $stmt->execute();
            $row = $stmt->fetch();

            echo "Returned Data: ";
            var_dump($row);
        } else {
            echo "Not a valid PDO resource";
        }


    } catch (PDOException $e) {
        echo "Problem : " . $e->getMessage;
    } catch (Exception $e) {
        echo "Other problem : " . $e->getMessage;
    }


    /* Set properties */
}

}

出力:

trying query...SELECT * FROM campaigns WHERE campaign=:campaignID
Returned Data: bool(false) 
4

2 に答える 2