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 に答える