我有以下配置。
private $host = '127.0.0.1';
private $db = 'loginexample';
private $dbusername = 'root';
private $dbpass = 'root';
$this->conn = new PDO("mysql:host={$host};dbname={$db};charset=utf8", $dbusername, $dbpass);
但如果我这样做
$this->conn = new PDO("mysql:host={$host};dbname=loginexample;charset=utf8", root, root);
答案 0 :(得分:2)
您的变量是私有类属性,因此您需要在所有变量上使用$this
:
private $host = '127.0.0.1';
private $db = 'loginexample';
private $dbusername = 'root';
private $dbpass = 'root';
$this->conn = new PDO("mysql:host={$this->host};dbname={$this->db};charset=utf8", $this->dbusername, $this->dbpass);
当您插入文字值时,它会连接(希望您的密码不是root
)。由于$host
未定义(因此NULL
,因此默认为驱动程序的默认值,即localhost
(或127.0.0.1
)。
看起来你可能没有启用error_reporting,因为你会看到未定义变量的注意事项。
error_reporting(E_ALL);
ini_set('display_errors', 1);