2014-03-30 193 views
0

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

<?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") or die(mysql_error());

告诉我:

Fatal error: Call to undefined function mysql_connect() in C:\wamp\www\website\db_connect.php on line 32

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

UPDATE:

我试图用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是否正确。

我可能会做错什么?

+2

请停止使用'mysql_ *'功能。他们已被弃用。 – hjpotter92

+0

我对尝试使用mysqli的问题进行了更新。 – jt123

+1

我通过卸载wamp并手动安装apache + php来解决这个问题。 – jt123

回答

2

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

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

+0

好吧,我进入php.ini并执行此操作:'extension = php_mysql.dll' 和'extension = php_mysqli.dll',然后检查是否具有这样的mysqli扩展名:if(!function_exists('mysqli_init ')&&!extension_loaded('mysqli'))'它告诉我,我没有它。之后我也做了重启。我确保dll文件存在于extension_dir =“c:/wamp/bin/php/php5.4.12/ext/” – jt123

+0

如果它存在,请在最后删除注释。没有,添加它 –