$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