环境是win7下面自己手动搭建的apache2.2+php5.3+mysql5,各项环境搭建均成功,phpinfo上面看到的Mysql和Mysqli都是对的,但是使用php连接Mysql不成功,但是可以成功使用Mysqli和PDO,而且连接错误的是很不显示错误信息,直接跳转到不能访问的页面。请求帮助!!!!!!!!

解决方案 »

  1.   

    http://blog.csdn.net/morisemen/article/details/7279328
    这个是一些信息,包括phpinfo,mysql连接显示页面,mysqli连接成功页面,PDO连接成功也是和mysqli连接成功相同的页面
      

  2.   


    function connect($servername, $username, $password, $dbname){
     echo "进入链接";
        $con = mysql_connect($servername, $username, $password);
        $con = mysql_select_db($dbname, $con);
     return $con;
    }你的代码错了  bool mysql_select_db ( string database_name [, resource link_identifier ] )
    mysql_select_db  没有必要赋值
      

  3.   

    mysql_connect(PHP 4, PHP 5)mysql_connect — 打开一个到 MySQL 服务器的连接说明resource mysql_connect ([ string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]] )
    打开或重复使用一个到 MySQL 服务器的连接。参数server
    MySQL 服务器。可以包括端口号,例如 "hostname:port",或者到本地套接字的路径,例如对于 localhost 的 ":/path/to/socket"。如果 PHP 指令 mysql.default_host 未定义(默认情况),则默认值是 'localhost:3306'。username
    用户名。默认值是服务器进程所有者的用户名。password
    密码。默认值是空密码。new_link
    如果用同样的参数第二次调用 mysql_connect(),将不会建立新连接,而将返回已经打开的连接标识。参数 new_link 改变此行为并使 mysql_connect() 总是打开新的连接,甚至当 mysql_connect() 曾在前面被用同样的参数调用过。client_flags
    client_flags 参数可以是以下常量的组合:MYSQL_CLIENT_SSL,MYSQL_CLIENT_COMPRESS,MYSQL_CLIENT_IGNORE_SPACE 或 MYSQL_CLIENT_INTERACTIVE。进一步信息见MySQL 客户端常量。返回值如果成功则返回一个 MySQL 连接标识,失败则返回 FALSE。更新日志版本 说明
    4.3.0  添加 client_flags 参数。
    4.2.0  添加 new_link 参数。
    3.0.10  对 server 添加 ":/path/to/socket" 支持。
    3.0.0  对 server 添加 ":port" 支持。
    范例Example #1 mysql_connect() 例子
    <?php
    $link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    echo 'Connected successfully';
    mysql_close($link);
    ?>
    Example #2 mysql_connect() 例子:使用 hostname:port 语法
    <?php
    // we connect to example.com and port 3307
    $link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password');
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    echo 'Connected successfully';
    mysql_close($link);// we connect to localhost at port 3307
    $link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password');
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    echo 'Connected successfully';
    mysql_close($link);
    ?>
    Example #3 mysql_connect() 例子:使用 ":/path/to/socket" 语法
    <?php
    // we connect to localhost and socket e.g. /tmp/mysql.sock//variant 1: ommit localhost
    $link = mysql_connect('/tmp/mysql', 'mysql_user', 'mysql_password');
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    echo 'Connected successfully';
    mysql_close($link);
    // variant 2: with localhost
    $link = mysql_connect('localhost:/tmp/mysql.sock', 'mysql_user', 'mysql_password');
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    echo 'Connected successfully';
    mysql_close($link);
    ?>
    注释Note:只要将 server 指定为 "localhost" 或 "localhost:port",MySQL 客户端库会越过此值并尝试连接到本地套接字(Windows 中的名字管道)。如果想用 TCP/IP,应该用 "127.0.0.1" 代替 "localhost"。如果 MySQL 客户端库试图连接到一个错误的本地套接字,则应该在 PHP 配置中设定 的正确路径并把 server 留空。Note:脚本一结束,到服务器的连接就被关闭,除非之前已经明确调用 mysql_close() 关闭了。Note:可以在函数名前加上一个 @ 来抑制出错时的错误信息。参见mysql_pconnect() - 打开一个到 MySQL 服务器的持久连接
    mysql_close() - 关闭 MySQL 连接
      

  4.   

    mysql_connect(PHP 4, PHP 5)mysql_connect — 打开一个到 MySQL 服务器的连接说明resource mysql_connect ([ string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]] )
    打开或重复使用一个到 MySQL 服务器的连接。参数server
    MySQL 服务器。可以包括端口号,例如 "hostname:port",或者到本地套接字的路径,例如对于 localhost 的 ":/path/to/socket"。如果 PHP 指令 mysql.default_host 未定义(默认情况),则默认值是 'localhost:3306'。username
    用户名。默认值是服务器进程所有者的用户名。password
    密码。默认值是空密码。new_link
    如果用同样的参数第二次调用 mysql_connect(),将不会建立新连接,而将返回已经打开的连接标识。参数 new_link 改变此行为并使 mysql_connect() 总是打开新的连接,甚至当 mysql_connect() 曾在前面被用同样的参数调用过。client_flags
    client_flags 参数可以是以下常量的组合:MYSQL_CLIENT_SSL,MYSQL_CLIENT_COMPRESS,MYSQL_CLIENT_IGNORE_SPACE 或 MYSQL_CLIENT_INTERACTIVE。进一步信息见MySQL 客户端常量。返回值如果成功则返回一个 MySQL 连接标识,失败则返回 FALSE。更新日志版本 说明
    4.3.0  添加 client_flags 参数。
    4.2.0  添加 new_link 参数。
    3.0.10  对 server 添加 ":/path/to/socket" 支持。
    3.0.0  对 server 添加 ":port" 支持。
    范例Example #1 mysql_connect() 例子
    <?php
    $link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    echo 'Connected successfully';
    mysql_close($link);
    ?>
    Example #2 mysql_connect() 例子:使用 hostname:port 语法
    <?php
    // we connect to example.com and port 3307
    $link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password');
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    echo 'Connected successfully';
    mysql_close($link);// we connect to localhost at port 3307
    $link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password');
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    echo 'Connected successfully';
    mysql_close($link);
    ?>
    Example #3 mysql_connect() 例子:使用 ":/path/to/socket" 语法
    <?php
    // we connect to localhost and socket e.g. /tmp/mysql.sock//variant 1: ommit localhost
    $link = mysql_connect('/tmp/mysql', 'mysql_user', 'mysql_password');
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    echo 'Connected successfully';
    mysql_close($link);
    // variant 2: with localhost
    $link = mysql_connect('localhost:/tmp/mysql.sock', 'mysql_user', 'mysql_password');
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    echo 'Connected successfully';
    mysql_close($link);
    ?>
    注释Note:只要将 server 指定为 "localhost" 或 "localhost:port",MySQL 客户端库会越过此值并尝试连接到本地套接字(Windows 中的名字管道)。如果想用 TCP/IP,应该用 "127.0.0.1" 代替 "localhost"。如果 MySQL 客户端库试图连接到一个错误的本地套接字,则应该在 PHP 配置中设定 的正确路径并把 server 留空。Note:脚本一结束,到服务器的连接就被关闭,除非之前已经明确调用 mysql_close() 关闭了。Note:可以在函数名前加上一个 @ 来抑制出错时的错误信息。参见mysql_pconnect() - 打开一个到 MySQL 服务器的持久连接
    mysql_close() - 关闭 MySQL 连接
      

  5.   

    你怎么知道没有影响?那个错误明显是浏览器的行为 而没有php的报错 当然我不知道你的代码是怎么写的
    你单独写一页面就如下代码你看下有没有影响<?php 
    $conn = mysql_connect("127.0.0.1",'root','');
    mysql_select_db('test',$conn);
    $conn = true;
    mysql_query("select * from tb",$conn);
    ?>
    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in E:\wwwroot\conn.php on line 5不要想当然了
      

  6.   

    使用同样的代码,我换了一个php的集成环境进行了测试,同样的没有问题,所以我没有想当然,你看过我的全部代码,我没有查询任何东西,我只是测试了连接是否成功,所以$con = my...的结果不影响我的测试结果。我知道你说的如果我用来查询,那肯定是有问题的,那么报错我可以看到,但是现在给出的提示是不能连接数据库服务器
      

  7.   

    你所说的我了解,我只是想请问一下,你看过我写的代码没有,我并不是不会使用mysql_connect这个函数或者其它类似的东西,我只是想具体了解一下,这种错误具体错误原因出在哪里。所以麻烦你不用写这么多,给一两句话解释一下我的错误就可以了。
      

  8.   

    你的连接服务器名称用的是localhost或者是127.0.0.1吗,换成你的计算机名称试一下,以前碰到过这样的问题
      

  9.   

    我知道你懂 我说了 那个错误明显是浏览器的行为
    看下你的php.ini 中的display_errors = On 有没有开启
    你的代码没看出错误 有报错信息比较好解决 如
    $lnk = mysql_connect('localhost', 'mysql_user', 'mysql_password')
           or die ('Not connected : ' . mysql_error());
      

  10.   


    Internet选项 -> 高级 -> 显示友好的HTTP错误信息勾掉之另外赞同heyli同学...
      

  11.   

    我用chrome也测试过,也是没有错误信息,直接显示不能访问。
      

  12.   


    这里是chrome上面的测试结果,也是一样不报错误信息。
      

  13.   

    php.ini 中 display_errors = On  有没有开启报错 不行再看 php_error.log找相对应的错误
      

  14.   

    这些都是设置好了的,还是不能显示,不过看着php_error.log我还是找到了出错的地方,php.ini中加载了exif,不知道是什么东西,但是去掉这个加载项就可以访问了。还是谢谢大家,争取没人给你们分。