私はこのラッパーを試していますが、index.phpファイルでvar_dump($ row)を実行すると、常に「ブール値false」が発生します。
これが私のdbクラスです:
<?php
// database.php
class DB {
protected $_connection = array(); // to map the connection
protected $_dbh; // property which keeps the database handler
protected $_database; // property to keep the database name
protected $_table; // property to keep the table name
protected $_query; // property to keep a query statement
public function __construct() {
// require the database configurations as an array from config.php
$this->_connection = require_once 'config.php';
// define which database driver to use (mysql?) and extract the values as
// variables
extract($this->_connection['connection']['mysql']);
// make the database and table name available to the class
$this->_database = $database;
$this->_table = $table_name;
// Check for PDO driver and create the connection to the database.
try {
$this->_dbh = new PDO($driver.":host=".$host, $username, $password);
} catch (PDOException $e) {
die ('Connection failed: ' . $e->getMessage());
}
}
public function input_query($query) {
$this->_query = $this->_dbh->prepare($query);
return $this;
}
public function execute() {
return $this->_query->execute();
}
public function single() {
$this->execute();
return $this->_query->fetch();
}
public function result_set() {
$this->execute();
return $this->fetchAll();
}
}
そして、私のindex.phpファイルで:
<?php
// index.php
require_once 'database.php';
$db = new DB();
$db->input_query("SELECT `name` FROM `names` WHERE `id`=1");
$r = $db->single();
var_dump($r);
そして私がそうするなら
<?php
// index.php
require_once 'database.php';
$db = new DB();
var_dump($db);
オブジェクトを取得します:
object(DB)[1]
public '_connection' =>
array (size=1)
'connection' =>
array (size=4)
'sqlite' =>
array (size=3)
...
'mysql' =>
array (size=6)
...
'pgsql' =>
array (size=6)
...
'sqlsrv' =>
array (size=6)
...
protected '_dbh' =>
object(PDO)[2]
protected '_database' => string 'pagination_demo' (length=15)
protected '_table' => string 'names' (length=5)
protected '_query' => null
しかし、var_dump($ r)は常にブール値のfalseを返し、コードで別のことを試みると、「未定義のメソッドDB :: single()の呼び出し」または「非オブジェクトのメソッド」のようなメッセージが表示されることがあります。
誰かが私がこれを整理するのを手伝ってもらえますか?
どうもありがとう。よろしく。