【问题标题】:can't connect to mysql database using host,user and pass无法使用主机、用户和密码连接到 mysql 数据库
【发布时间】:2012-01-24 02:24:36
【问题描述】:

每当我运行以下代码时,我都会得到这个:

致命错误:调用 C:\wamp\www\php-academy\113-connect-db.php 中未定义的函数 mysql_connect()


    <?php
    $conn_error ='could not connect';
    $mysql_host = 'localhost';
    $mysql_user = 'root';
    $mysql_pass = '';
    mysql_connect($mysql_host, $mysql_user, $mysql_pass) or                                                   die($conn_error);

    $mysql_db = 'a_database';

    mysql_select_db($mysql_db) or die($conn_error);
    echo 'Connected!';
    ?>

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    这可能意味着您没有加载 MySQL 扩展。您可以测试扩展是否加载了extension_loaded("mysql");

    【讨论】:

    • 我猜你打了我一拳。 :P
    • 谢谢耶勒。我像你建议的那样测试了 extension_loaded("mysql") 。我将如何加载它?
    • 您可能必须使用 --enable-mysql 或其他类似选项重新编译 PHP。或者,您可以使用dl 函数。
    【解决方案2】:

    我怀疑这是因为未加载扩展程序。我会检查你的 php_info();找出答案。

    一旦你完成你的代码应该可以工作,虽然我更喜欢将 mysql_connect() 分配给一个变量,然后在 mysql_select_db() 中调用该变量,如下所示:

    $defHost     = 'localhost';
    $defUsername = 'username';
    $defPassword = 'password';
    $defDatabase = 'database_name';
    
    $connect = mysql_connect($defHost, $defUsername, $defPassword) or die();
    mysql_select_db($defDatabase, $connect) or die();
    

    【讨论】:

    • 嘿,谢谢 Josh 我将如何加载扩展程序?我检查了 phpinfo() 函数,但不确定我应该寻找什么,也不确定之后我应该做什么来加载扩展。
    • nm 知道了——我去 php.ini 文件,找到 ;extension=php_mysql.dll 并取出分号。
    【解决方案3】:

    报错的原因可能如下:

    在配置文件中指定了对服务器数据库的错误访问详细信息。 配置文件没有读取权限。提供文件的读取权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-21
      • 1970-01-01
      • 2019-04-17
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多