php - Windows 10 XAMPP - PDO 连接正常,无法通过 mysqli 或 mysqli_connect 连接

标签 php mysql wordpress

我使用的是安装了 XAMPP (v3.2.2) 的 Windows 10 电脑。

如果我在 MySQL 中执行此操作:

select version();
-- 10.1.32-MariaDB

这确认了版本...

我有一个名为“wp”的测试数据库,用户名和密码都设置为“wp”。

我可以使用 PDO 毫无问题地连接到数据库,但无法使用 mysqli 或 mysqli_connect 连接,而且我不明白为什么。到目前为止,我今天已经在这上面浪费了几个小时。我正在尝试在 XAMPP 上安装 Wordpress,但安装程序说它无法连接到数据库,因此我一直在对此进行测试,因此出现了这个问题。

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 用户具有正确的访问级别:

enter image description here

由于使用相同的用户详细信息通过 PDO 进行连接,但它们不适用于其他方法。

我已经使用phpinfo();进行了检查,并且可以看到mysqli已设置,据我所知(我搜索了mysqli_connect > 但看不到它列出):

mysqli phpinfo

enter image description here

我是否遗漏了一些明显的东西?

最佳答案

试试这个

//This line of code connects to mysql database
define("HOST_NAME", "localhost:3306");
define("HOST_USER", "wp");
define("HOST_PASS", "wp");
define("HOST_DB", "wp");

$db = new mysqli(HOST_NAME, HOST_USER, HOST_PASS, HOST_DB);


 // This line of code checks if connection error exists.

if($db->connect_error) {
    echo $db->connect_errno . " " . $db->connect_error;
} else {
    echo "Connection successful.";
}

关于php - Windows 10 XAMPP - PDO 连接正常,无法通过 mysqli 或 mysqli_connect 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54958252/

相关文章:

wordpress - 从 wp_nav_menu 输出中删除 <div> 包装器

PHP GD 创建一个 PNG 文件,当我尝试在同一文件上使用 imagefronpng() 时失败

php - 将 CodeIgniter 查询转换为普通的 mySQL 查询

jquery - 将鼠标悬停在某个非 slider div 上时如何暂停 nivo slider ?

mysql - HAVING 在 Laravel 中抛出错误,而不是在 PHPMyAdmin 中

mysql - Perl DBI MySQL : Check if column is UNIQUE

css - 我怎样才能让这个表单和按钮在响应式设计中正确调整大小?

javascript - 如何在 xAxes 上显示与工具提示 Chart.js V3 上不同的值

php - MySql 中的声明错误

php - MySQL页面访客统计,数据库溢出保护