создать массив Mysql соединение и передать его подключения метод как таковой:Undefined смещение на массив, но смещение существует
$database->connect(array(ROOT_DB_HOST,
ROOT_DB_NAME, ROOT_DB_USERNAME, ROOT_DB_PASSWORD));
Когда я print_r()
массив внутри подключения метода я получаю то, что я ожидаю:
Array
(
[0] => localhost
[1] => dbname
[2] => dbuser
[3] => dbpass
)
Однако внутри метода connect передаю значения массива в строку DSN, и я получил и неопределенное смещение на 0,1,2,3. Вот DSN строка:
$this->dbh = new PDO('mysql:host='. $connection[0] .';dbname=' . $connection[1], $connection[2], $connection[3]);
Так я прохожу значение как массив и подключить их в конструктор PDO и получить ошибки, я не знаю, что происходит, какие-нибудь идеи?
Метод:
public function connect($connection) {
try {
$this->dbh = new PDO('mysql:host='. $connection[0] .';dbname=' . $connection[1], $connection[2], $connection[3]);
$this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch(PDOException $e) {
throw new Exception($e->getMessage());
}
}
Ошибка:
Notice: Undefined offset: 0 in database.class.php on line 16 Notice: Undefined offset: 1 in database.class.php on line 16 Notice: Undefined offset: 2 in database.class.php on line 16 Notice: Undefined offset: 3 in database.class.php on line 16
Fatal error: Uncaught exception 'Exception' with message 'SQLSTATE[28000] [1045] Access denied for user 'apache'@'localhost' (using password: NO)' in database.class.php:20 Stack trace: #0 sandboxx.php(16): Database->connect(Array) #1 {main} thrown in database.class.php on line 200
Опубликовать ** точный ** сообщение об ошибке, которое вы получили. – Jocelyn
Можете ли вы также написать код метода «connect()»? – Niko
Что вы получаете, когда используете массив var_dump и var_dump $ connection? –