0

我有以下配置。

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);
4

1 回答 1

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);
于 2012-12-04T17:35:46.930 回答