我正在按照教程创建一个基于OOP的登录系统。我做了相应的事情,但在创建pdo时,我在第15行的DB.php文件中收到错误。无法找出导致此错误的原因.Been在那里停留了一段时间。任何人都可以帮我解决这个错误。代码可能看起来很长但是我保证这对你来说是小菜一碟。有四个php文件。
1.init.php文件包含创建新PDO()对象的成分。
2.config.php文件用于从init.php文件获取数据,因为字符串作为('mysql / host')类型传递给它,并使用explode()函数从中提取数据。
2.DB.php文件用于连接数据库。 我得到的错误是
DB.php文件:
class DB{
private $_instance=null;
private $pdo,
$query,
$error=false,
$results,
$count=0;
private function __construct(){
try{
$this->$pdo=new PDO('mysql:host='.Config::get('mysql/host').';dbname='.Config::get('mysql/db'),Config::get('mysql/user'),Config::get('mysql/password'));
}catch(PDOException as $e){
echo $e->getMessage();
}
}
public static function getInstance(){
if(!isset(self::$_instance)){
self::$_instance=new DB();
}
return self::$_instance;
}
}
Config.php文件:
class Config{
public static function get($path){
if($path){
$config=$GLOBALS['config'];
$arr=explode('/',$path);
foreach($arr as $bit){
if(isset($config[$bit])){
$config=$config[$bit];
}
}
return $config;
}
}
}
init.php文件:
session_start();
$GLOBALS['config']=array(
'mysql'=>array(
'host' => 'localhost',
'db' => 'login',
'user' => 'root',
'password' => ''
)
);
spl_autoload_register(function($class){
require_once 'c:/xampp/htdocs/login/classes/'.$class.'.php';
});
require_once 'c:/xampp/htdocs/login/function/sanitize.php';
index.php文件:
require_once 'c:/xampp/htdocs/login/core/init.php';
DB::getInstance()->query('SELECT name FROM table WHERE id=1');
答案 0 :(得分:0)
您的错误消息是分析错误。这意味着PHP解释器/处理器/程序试图读取您的文件,但发现语法错误,并且必须停止。如果你看DB.php的第15行(根据错误信息)
}catch(PDOException as $e){
您会看到问题所在。这不是有效的PHP语法 - 您可能想要
}catch(PDOException $e){
PDOException
位是异常处理代码的类类型提示 - 不需要使用as
。