【问题标题】:mysql_select_db returns false while mysql_error returns nothingmysql_select_db 返回 false 而 mysql_error 不返回任何内容
【发布时间】:2014-03-18 20:45:49
【问题描述】:

我正在尝试连接到数据库,但 mysql_select_db 总是返回 false。如果我只使用 mysql_select 的第一个参数,我会收到错误:用户''@'localhost' 对数据库'newboston' 的访问被拒绝,如果我输入连接链接作为第二个参数,mysql_error 什么也不返回。有谁知道发生了什么?

<?php
$dbServer = 'localhost';
$dbUserName = 'root';
$dbPassword = 'password';

$database = 'newboston';
$db = mysqli_connect($dbServer, $dbUserName, $dbPassword);

$connectFailed = 'Could not connect to ' . $dbServer . '.';

if($db)
{
if(mysql_select_db($database, $db))
{
    echo 'Connected to ' . $database;
}

else
{
    echo 'Could not connect to ' . $database;
    die(mysql_error());
}
}

else
{
    echo $connectFailed;
}

?>

【问题讨论】:

    标签: php mysql database-connection


    【解决方案1】:

    您正在混合mysqlmysqli

    $db = mysqli_connect($dbServer, $dbUserName, $dbPassword);
    

    应该是:

    $db = mysql_connect($dbServer, $dbUserName, $dbPassword);
    

    (实际上你应该使用mysqli,因为mysql已被弃用)。

    【讨论】:

    • 或者,他的其余函数应该是mysqli_*吗?
    • 只有当他们改变他们连接到数据库的方式时,因为mysqli接受四个参数并且不使用mysqli_select_db(),除非你想改变数据库。
    • 你说的都是对的,我是个白痴,我什至在其他帖子中读到过它,但我 100% 确定我已经删除了 mysqli 函数。
    • @JohnConde:我的意思是不要使用 mysql,但你编辑了你的帖子嘿。 user3434960:你不应该使用 mysql_* 函数。至少使用 mysqli_* 或 PDO。
    • @HalfCrazed 问题的解决方案正如我发布的那样,但正确的做法是切换到 mysqli
    【解决方案2】:

    您将mysqli_* 函数与mysql_* 函数混合使用。

    我可以建议学习 PDO MySQL 吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 2020-04-27
      • 2019-04-06
      • 2012-02-15
      • 2020-09-07
      • 2021-11-22
      • 2015-11-06
      • 2013-11-14
      相关资源
      最近更新 更多