pdo接続オブジェクトを返す接続クラスを作成しました。他のモデルクラスはそのクラスを拡張します。ビューモードでは、私はnamespaceとautoloadクラスを使って出力を取得しようとしましたが、致命的なエラー '非オブジェクトのメンバー関数query()を呼び出します。'これを解決するために私を助けてください。php pdo namespaceクラスの拡張で致命的なエラーが発生しました
これは、その後、私は、フロントエンドのページで Form.php
namespace myproject;
use myproject\Connection;
class Form extends Connection
{
public function GetUser($id)
{
$sql = "select * from users where uid='$id'";
$query = $this->dbh->query($sql);
$data = $query->fetch(PDO::FETCH_ASSOC);
$uname = $data[first_name]." ".$data[last_name];
return $uname;
}
}
他のクラスにこのクラスを拡張Connection.php
namespace myproject;
use PDO;
class Connection
{
private $host = "localhost";
private $user = "root";
private $pass = "";
private $dbname = "mydb";
public $dbh;
private $error;
public function __construct()
{
$dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->dbname;
try{
$this->dbh = new PDO($dsn, $this->user, $this->pass);
$this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $this->dbh;
}
// Catch any errors
catch(PDOException $e){
$this->error = $e->getMessage();
}
}
}
あり、それは私が先に指摘したエラーメッセージが来ました。
namespace myproject;
include 'Form.php';
include 'Connection.php';
$test = new Form();
echo $test->GetUser(1);
親クラスのオブジェクトを作成する必要がありますconnectイオン$ objはそれから$ obj - > $ dbh-> query($ sql)と呼ばれます。 –
@Ravi Hirani:レスポンスありがとう、From.phpのコンストラクタで試してみましたが、それでもエラーです。 – user2870117
PDOとの接続に成功したことをどのように知っていますか? $ this-> errorの下のエラーをキャッチし、チェックしません。 –