Я использую ПК с Windows 10, на котором установлен XAMPP (v3.2.2).
Если я делаю это в MySQL:
select version();
-- 10.1.32-MariaDB
Это подтверждает версию ...
У меня есть тестовая база данных с именем "wp", а для имени пользователя и пароля задано значение "wp".
Я могу без проблем подключиться к базе данных с помощью PDO, но я не могу 'не могу подключиться с помощью mysqli или mysqli_connect, и я не понимаю почему.Сегодня я потратил несколько часов на это.Я пытаюсь установить Wordpress на XAMPP, но установщик говорит, что он не может подключиться к базе данных, поэтому я проверял это, поэтому я задал этот вопрос.
mysqli
$servername = "localhost";
$username = "wp";
$password = "wp";
$dbname = "wp";
$db = new mysqli($servername, $username, $password, $dbname);
// Warning: mysqli::__construct(): (HY000/1045): Access denied for user 'wp'@'localhost' (using password: YES) in C:\xampp\public_html\_conn.php on line 6
mysqli_connect
$host = "localhost";
$uname = "wp";
$pwd = "wp";
$dbname = "wp";
$conn = mysqli_connect($host, $uname, $pwd, $dbname);
// Warning: mysqli_connect(): (HY000/1045): Access denied for user 'wp'@'localhost' (using password: YES) in C:\xampp\public_html\_conn.php on line 13
pdo
$config['db'] = array(
'host' => 'localhost',
'username' => 'wp',
'password' => 'wp',
'dbname' => 'wp'
);
try {
$pdo = new PDO('mysql:host=' .$config['db']['host']. ';port=33066;dbname=' .$config['db']['dbname'], $config['db']['username'], $config['db']['password']);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$pdo->setAttribute(PDO::NULL_EMPTY_STRING, true);
$pdo->exec("SET CHARACTER SET utf8mb4");
}
catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
// connects fine
Пользователь wp
имеет правильный уровень доступа:

Так как те же данные пользователя используются для подключения через PDO, но они не работают для других методов.
Я проверил с помощью phpinfo();
и вижу, что mysqli
настроен какнасколько я вижу (я искал mysqli_connect
, но не вижу его в списке):
mysqli phpinfo

Я что-то упускаю из виду?