首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows10XAMPP- PDO连接正常,无法通过mysqli或mysqli_connect连接

问Windows10XAMPP- PDO连接正常,无法通过mysqli或mysqli_connect连接
EN

Stack Overflow用户
提问于 2019-03-02 19:57:10
回答 1查看 167关注 0票数 0

我使用的是一台安装了XAMPP (v3.2.2)的Windows 10 PC。

如果我在MySQL中这样做:

代码语言:javascript
复制
select version();
-- 10.1.32-MariaDB

这证实了这个版本。

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

我可以使用PDO连接到数据库而没有问题,但是我不能使用mysqli或mysqli_connect连接,我不明白为什么。到目前为止,我已经在这上面浪费了几个小时。我试图在XAMPP上安装Wordpress,但是安装程序说它无法连接到数据库,所以我一直在测试这个问题。

mysqli

代码语言:javascript
复制
$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

代码语言:javascript
复制
$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

代码语言:javascript
复制
$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

​

​

我是不是漏掉了什么明显的东西?

EN

回答 1

Stack Overflow用户

发布于 2019-03-02 20:06:02

尝尝这个

代码语言:javascript
复制
//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.";
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54958252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档