2016-08-09 13 views
0

こんにちは私は質問PDO接続があります。それが起こるのはなぜPDO接続:メンバー関数の呼び出しnullでのprepare()

Call to a member function prepare() on null

:私のconn.phpは、私はこの

$dbClass = new Database(); 
$stmt = $dbClass::Connect()->prepare("SELECT * FROM user_posts"); 

を使用する場合、それはエラーを返し、次の

<?php 
define('host', 'localhost'); 
define('host_user', 'root'); 
define('host_pass', ''); 
define('host_db', 'testdb'); 
class Database { 
public $conn; 
public function Connect() { 
try { 
$conn = new PDO("mysql:host=" . host . ";dbname=" . host_db, host_user, host_pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} catch (PDOException $e) { 
echo "Connection error:" . $e->getMessage(); 
} 
} 
} 
?> 

のですか?

答えて

1

prepare()PDOの関数であるが、Connect()ので、何も返さない、あなたは何にprepare()を呼んでいるので、あなたは、エラーが発生します。

それはPDOオブジェクトを返すようにするには、Connect()を変更hsould。これを機能の最後(またはブロックの末尾)に追加します。

return $conn; 
+0

ありがとうございます! – user3227899

+0

@ user3227899ようこそ:-)問題が解決した場合は、自分の答えを選択してください。 – BeetleJuice

+0

を選択しますか?意味は何? – user3227899

関連する問題