【发布时间】:2014-04-04 12:08:36
【问题描述】:
我想调用一个类中的方法,使用来自另一个类的数据库连接。
initializing.php
// load the configs, AFTER this I SHOULD HAVE CONSTANTS
require_once('myconfigs.php');
// load some function , some HELPER
require_once(LIB_PATH.DS.'functions.php');
// load the core objects
require_once(LIB_PATH.DS.'database.php');
$database = MySQLDatabaseConnection::connection();
the database.php
require_once('myconfigs.php');
require_once(LIB_PATH.DS.'initializing.php');
class MySQLDatabaseConnection {
private static $instance;
private function __construct(){
}
private function __clone(){
}
public static function connection(){
if ( !isset( self::$instance ) ) {
self::$instance = new MySQLi(DBSERVER, DBUSER, DBPASSWORD, DBNAME);
if ( self::$instance->connect_error ) {
throw new Exception('MySQL connection failed: '. self::$instance->connect_error);
}
}
return self::$instance;
}
}
the listproducts.php
这是为了一些测试,之后在 DbPlus 类中我想创建 CRUD 方法,但看起来简单的 echo 不起作用:/
require_once('initializing.php');
class DbPlus extends MySQLDatabaseConnection{
public $database = parent::connection();
public function read(){
$query = "SELECT name, price_in, price_out, category_products_id FROM products";
$data = $database->query($query);
while ( $row = $data->fetch_object()) {
echo $row->name;
}
}
}
$dbplus = new DbPLus;
$dbplus->read();
我收到这个错误
解析错误:语法错误,意外 '(',期待 ',' 或 ';' in D:\XAMPP\htdocs\xxx\includes\listproducts.php 在第 19 行
我不知道意外的 '(' 来自哪里。
有什么想法吗?谢谢
【问题讨论】:
-
请不要使用全局状态在多个实例之间共享数据库连接。而是使用这样的东西:stackoverflow.com/a/11369679/727208