我在类中定义常量
class config {
const DB_PDO_Connect = "'mysql:host=localhost;dbname=XdbX','XuserX','XpwX'";
}
在另一个类中,我尝试创建一个新的PDO对象
class user {
function login() {
$db = new PDO(config::DB_PDO_Connect);
在该行之后,$db
不是一个对象,所以某些东西不起作用,但如果我用它替换它;
class user {
function login() {
$db = new PDO('mysql:host=localhost;dbname=XdbX','XuserX','XpwX');
(从配置类中复制并粘贴字符串) 它有效。
我可以回复config::DB_PDO_Connect
所以它可以读取它,PDO就是不喜欢它。
答案 0 :(得分:1)
你实际上做了什么:
$db = new PDO("'mysql:host=localhost;dbname=XdbX','XuserX','XpwX'");
请注意,您实际上只传入了一个参数(格式为意外格式),最后两个参数丢失。
除了架构决策(因为你应该有一个DB类来管理数据库连接,并且最好将配置保存在自己的文件中)为什么不将这两个参数添加到你的配置类?
class config {
const PDO_DB = 'mysql:host=localhost;dbname=XdbX';
const PDO_USER = 'XuserX';
const PDO_PASS = 'XpwX';
}
然后你可以:
$db = new PDO(config::PDO_DB, config::PDO_USER, config::PDO_PASS);