簡體   English   中英

Windows 10 XAMPP-PDO連接正常,無法通過mysqli或mysqli_connect連接

[英]Windows 10 XAMPP - PDO connection fine, cannot connect via mysqli or mysqli_connect

我正在使用已安裝XAMPP(v3.2.2)的Windows 10 PC。

如果我在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用戶具有正確的訪問級別:

在此處輸入圖片說明

由於使用相同的用戶詳細信息通過PDO進行連接,但它們不適用於其他方法。

我已經檢查過使用phpinfo(); 並據我所知可以看到已設置mysqli (我搜索了mysqli_connect但看不到列出的內容):

mysqli phpinfo

在此處輸入圖片說明

我是否缺少明顯的東西?

嘗試這個

//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.";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM