【问题标题】:php not connecting to mysql databasephp没有连接到mysql数据库
【发布时间】:2014-03-30 15:11:27
【问题描述】:

所以我安装了 WAMP 和一个 mysql 数据库(不使用 wamp 附带的数据库)。我可以从 MySql Workbench 连接到服务器,但不能从 php 页面连接。它们都在同一台机器上,脚本如下所示:

<?php

/**
 * A class file to connect to database
 */
class DB_CONNECT
{

    // constructor
    function __construct()
    {
        // connecting to database
        $this->connect();
    }

    // destructor
    function __destruct()
    {
        // closing db connection
        $this->close();
    }

    /**
     * Function to connect with database
     */
    function connect()
    {
        // Connecting to mysql database
        $con = mysql_connect("127.0.0.1:3306", "userMan", "passDoor") or die(mysql_error());

        // Selecing database
        $db = mysql_select_db("testdb") or die(mysql_error());

        // returing connection cursor
        return $con;
    }

    /**
     * Function to close db connection
     */
    function close()
    {
        // closing db connection
        mysql_close();
    }
}

?>

这一行:

$con = mysql_connect("127.0.0.1:3306", "userMan", "passDoor") 或 死(mysql_error());

告诉我:

致命错误:调用未定义的函数 mysql_connect() C:\wamp\www\website\db_connect.php 在第 32 行

它以前工作,但现在“突然”停止工作,有什么想法吗?

更新:

我尝试使用 mysqli 代替,因为 mysql_* 已被弃用,所以我这样做了:

我发现在 phpinfo() 中使用了 hte php.ini,并确保这些未注释:

extension=php_mysql.dll
extension=php_mysqli.dll

我也尝试过评论 php_mysql.dll,

我将它添加到我的 php 脚本中以查看它是否有效:

if (!function_exists('mysqli_init') && !extension_loaded('mysqli'))
        {
            echo 'We don\'t have mysqli!!!';
        }
        else
        {
            echo 'Phew we have it!';
        }

我的结果是“我们没有 mysqli!!!”。

我在 windows 8.1 上运行 wamp,php 是 5.4.12 版本,我还检查了 php.ini 中的 extension_dir 是否正确。

我可能做错了什么?

【问题讨论】:

  • 请停止使用mysql_*函数。它们已被弃用。
  • 我更新了关于尝试使用 mysqli 的问题。
  • 我通过卸载 wamp 并手动安装 apache + php 解决了这个问题。

标签: php mysql mysqli


【解决方案1】:

您的 mysql 驱动程序未加载。在php.ini 中取消注释extension=php_mysql.dll。另外我建议您使用mysqliPDO。您正在使用已弃用的一个。

为了找到php.ini的位置,你可以在命令行中使用php --ini

【讨论】:

  • 好的,所以我进入 php.ini 并这样做了:extension=php_mysql.dllextension=php_mysqli.dll 然后我检查我是否有这样的 mysqli 扩展:if (!function_exists('mysqli_init') &amp;&amp; !extension_loaded('mysqli')) 它告诉我我没有没有它。之后我也重新启动了。我确保 dll 文件存在于 extension_dir = "c:/wamp/bin/php/php5.4.12/ext/"
  • 如果存在删除最后的评论。没有,添加它
猜你喜欢
  • 2016-02-22
  • 2014-08-11
  • 2013-07-26
  • 1970-01-01
  • 2012-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多