mysqli_connect无法正常工作

时间:2011-06-02 09:46:56

标签: php mysql

我安装了apache,php和mysql。现在,当我执行php代码时,mysqli_connect()无法正常工作,它也没有显示消息。

$dbc=mysqli_connect(' ', ' ', ' ', ' ') or die('not connecting');

现在有人告诉我要将哪个数据库用户名传递给mysqli_connect以及密码是什么。我不记得我被要求提供任何用户名或密码 为什么die()中的消息不出现?

我的var_dump(function_exists('mysqli_connect'));输出bool(false)..如果它与它有关,我该如何纠正呢?

8 个答案:

答案 0 :(得分:14)

看起来没有安装MySQLi扩展。 var_dump(function_exists('mysqli_connect'));输出了什么?

答案 1 :(得分:4)

您有error_reporting(E_ALL);ini_set('display_errors',1);吗?

问题可能出在其他地方。

如果它没有在Die()中引用该消息,您怎么知道它失败?

答案 2 :(得分:2)

对于主机,如果您使用的是“localhost:8889”, 尝试使用“localhost”,并在mysqli_connect()中放入'8889'(或者你正在使用的任何端口)作为其他争论之后的参数。

为我工作。

例如:

mysqli_connect('localhost','root','root','dbname','8889');

答案 3 :(得分:0)

如果你没有传递任何值,我认为MySQL是设置ini中的using defaults。所以如果你传递空值,也许这也会发生。在这种情况下,实际上可以建立连接,结果不会“死”。最好的办法是使用var_dump检查通话后$dbc包含的内容并从那里继续。

但无论如何,如果你不记得它们,PHP就无法告诉你使用哪些设置。 :)

答案 4 :(得分:0)

如果您刚安装了mysql,那么只有root用户,没有密码(如果您愿意,则为空白密码)。强烈建议您更改密码 AND 为您的应用程序创建一个新用户和密码,该用户和密码只能访问一个数据库,即您的应用程序使用的数据库。

要更改root密码,您可以执行以下操作:

$ mysql -u root -p
Enter password: [press enter]
mysql> use mysql;
mysql> UPDATE user SET `password`=PASSWORD('your_desired_password') WHERE username='root';

# this next bit is to create a database and a username for your web application
mysql> CREATE DATABASE your_application_name;
mysql> GRANT ALL ON your_application_name.* TO 'your_username'@'localhost' IDENTIFIED BY 'yourpassword';

显然用正确的值更改所有your_*值。

由于die()未执行的原因,请执行@ yes123和@binaryLV所说的内容(我认为两者都是正确的,mysqli未安装,因此它会抛出{{1}在调用E_FATAL_ERROR并且mysqli_connect(...)被禁用(或者可能是error_reporting,或者两者都有)时,您没有看到该错误。

答案 5 :(得分:0)

//1 create a data base connection
$con = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD);
if (!$con) {
    die('mysqli connection failed: ' . mysql_error() );
}
//2 connect with a data base 
$db_select = mysqli_select_db($con , DB_NAME);  
if (!$db_select) {
    die('data base selection failed: ' . mysql_error() );
}
//3 create query
    $result = mysqli_query($con, "select * from subjects");
    if (!$result) {
        die('query not successed: ' . mysql_error() );
    }
//4 use the returned data
    while ($row = mysqli_fetch_array($result)) {
    echo $row['menu_name'] . " " . $row['position'] . "<br>" ;
}
//5 close connection...
if (isset($con)) {      
    mysqli_close($con);
}

Run this code if you have any query then feel free to ask me. 

答案 6 :(得分:0)

首先检查你的php版本 echo&#39;当前PHP版本:&#39; 。 phpversion();出口; 如果它高于5.5甚至不工作 然后在你的php文件phpinfo(INFO_MODULES)中写脚本;退出; 它显示所有关于PHP和检查Mysqli列出与否。如果没有,那么通知我们的服务器admministrator或如果你有权访问然后转到phpini文件并启用mysqli(从中删除分号)

答案 7 :(得分:-1)

试试这个:

$dbc = @ mysql_connect('localhost', 'root', '') or exit('Not connecting.');