$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
echo '.';
}
連接到一個數據庫,我得到
Connection failed: Access denied for user '*'@'localhost' to database '*'
,但如果我用
$conn = mysqli_connect($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
echo '.';
}
它的作品!是什麼賦予了?
我以前使用過新的mysqli,它工作正常。我知道我的用戶名/密碼是正確的。它的GoDaddy和我點擊了所有的權限。到底是怎麼回事?
編輯:
運行此:
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
$servername = "localhost";
$username = "testuser";
$password = "testpassword";
$dbname = "testdb";
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$conn1 = mysqli_connect($servername, $username, $password, $dbname);
$conn2 = new mysqli($servername, $username, $password, $dbname);
var_dump($conn1->stat, $conn2->stat);
輸出:
Fatal error: Uncaught exception 'mysqli_sql_exception' with message 'Access denied for user 'testuser'@'localhost' to database 'testdb'' in /home/public_html/wj-test.php:11
Stack trace:
#0 /home/public_html/wj-test.php(11): mysqli_connect('localhost', 'testuser', 'testpassword', 'testdb')
#1 {main} thrown in /home/public_html/wj-test.php on line 11
我知道你說的變量是對的,但重新檢查。看起來你在第一個代碼中有'$ username ='*''和'$ dbname ='*''。也許這是一個可變範圍問題。 – Barmar
只是將它們更改爲*的這個問題。 –
這兩個代碼必須有一些其他的區別。 'mysqli_connect()'只是一個調用'new mysqli'的函數。這就是'mysqli'的所有程序與OOP變體的工作原理。 – Barmar