私はここでかなり愚かなことをしてきました。誰も私を導くことができますか?ここでPHP PDO:非オブジェクト上のメンバ関数query()を呼び出す
は、私は物事設定している方法は次のとおりです。
database.phpで:
class Database extends PDO {
/**
* Connect
*/
public function __construct($file = 'db_config.ini') {
if (!$settings = parse_ini_file($file, TRUE)) throw new exception('Unable to open ' . $file . '.');
$dns = $settings['database']['driver'] .
':host=' . $settings['database']['host'] .
((!empty($settings['database']['port'])) ? (';port=' . $settings['database']['port']) : '') .
';dbname=' . $settings['database']['schema'];
parent::__construct($dns, $settings['database']['username'], $settings['database']['password']);
}
}
Team.php:
class Team {
private $_db;
/**
* getTeamMembers - Get team member UserIDs from TeamID
*
* @param int $teamID
* @return array UserIDs
*/
public function getTeamMembers($teamID) {
$result = "";
$STH = $this->_db->query("SELECT FirstName FROM UserDetails WHERE TeamID = '$teamID'");
$result = $STH->setFetchMode(PDO::FETCH_OBJ);
return $result;
}
}
ページコード:
try {
$db = new Database();
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$team = new Team($db);
}
catch (PDOException $e) {
echo "<p>Error connecting to database: </p>".$e->getMessage();
}
$teamMembers = $team->getTeamMembers($teamID);
エラーメッセージ:
Call to a member function query() on a non-object in Team.php on line 20
ライン20:$STH = $this->_db->query("SELECT FirstName FROM UserDetails WHERE TeamID = '$teamID'");
私が間違って何をしましたか?
Teamの '__construct()'を見せてもらえますか? –
@MickHansen Team.phpには '__construct()'はありません –