我一直在試驗來自類構造的持久化數據,我試圖通過公共__construct建立持久連接,所以我可以在我的課程中使用我的數據庫連接信息。我的代碼如下:訪問類中的數據庫構造
class Inbox {
# private $Database;
public function __construct() {
$this->$Database = new mysqli ('localhost','root','xxx','test');
}
public static function TestConnect(){
if (self::Database){
echo "Success When Connecting To Database";
}else{
echo "Problems When Connecting To Database";
}
}
public static function TestSelect(){
$Select = $this->Database->prepare("SELECT * FROM test");
$Select->execute();
$Select->bind_result($Test_ID, $Test_UName);
$Select->fetch();
print_r($Select);
}
}
$Foo = new Inbox();
$Foo->TestSelect();
現在。當運行
我出現以下錯誤:
Notice: Undefined variable: Database in C:\xampp\htdocs\InboxFeature\Api\Class.php on line 15
Fatal error: Cannot access empty property in C:\xampp\htdocs\InboxFeature\Api\Class.php on line 15
更改我行:
$Select = self::Database->prepare("SELECT * FROM test");
並取消: private $Database;
我得到帶有錯誤:
Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR) in C:\xampp\htdocs\InboxFeature\Api\Class.php on line 25
所以我的整體問題是我究竟在哪裏出錯了,我看過使用__construct()
方法在Stackoverflow上顯示的示例。我看不到它出了什麼問題。
使用提供的答案。我附加了以下更改:
private static $Database;
public function __construct() {
self::$Database = new mysqli ('localhost','root','xxx','test');
}
public static function TestSelect(){
$Select = self::$Database->prepare("SELECT * FROM test");
$Select->execute();
$Select->bind_result($Test_ID, $Test_UName);
$Select->fetch();
echo $Test_ID;
}
已成功工作。感謝您的快速響應
declare $數據庫變量 –