我一直在试验来自类构造的持久化数据,我试图通过公共__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 $数据库变量 –