在创建 PDO 对象时无法确定可能导致此错误的原因
can't figure what might causing this error when creating PDO object
我正在按照教程创建基于 OOP 的登录 system.I 相应地做了所有事情但是在创建 pdo 时我在 DB.php 文件中的第 15.Can 行中收到错误找出这个 error.Been 卡在那里的原因 time.Can 任何人都可以帮助我解决这个错误。代码可能看起来很长,但对你来说这是小菜一碟我 promise.There 是四个 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');
您的错误消息是解析错误。这意味着 PHP interpreter/processor/program 试图读取您的文件,但发现语法错误,不得不停止。如果您查看 DB.php 的第 15 行(根据错误消息)
}catch(PDOException as $e){
你会看到问题的。这是无效的 PHP 语法——您可能需要
}catch(PDOException $e){
其中的 PDOException
位是异常处理代码的 class 类型提示——无需使用 as
.
我正在按照教程创建基于 OOP 的登录 system.I 相应地做了所有事情但是在创建 pdo 时我在 DB.php 文件中的第 15.Can 行中收到错误找出这个 error.Been 卡在那里的原因 time.Can 任何人都可以帮助我解决这个错误。代码可能看起来很长,但对你来说这是小菜一碟我 promise.There 是四个 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');
您的错误消息是解析错误。这意味着 PHP interpreter/processor/program 试图读取您的文件,但发现语法错误,不得不停止。如果您查看 DB.php 的第 15 行(根据错误消息)
}catch(PDOException as $e){
你会看到问题的。这是无效的 PHP 语法——您可能需要
}catch(PDOException $e){
其中的 PDOException
位是异常处理代码的 class 类型提示——无需使用 as
.