Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql连接失败_Php_Sql_Linux - Fatal编程技术网

Php mysql连接失败

Php mysql连接失败,php,sql,linux,Php,Sql,Linux,我将此代码用于mysql连接 $con = mysql_connect("localhost", "username" , "password"); if (!$con) { die('Could not connect: '); } else { echo "connection failed....";} mysql_select_db("ManagersDatabase", $con); mysql数据库可在/var

我将此代码用于mysql连接

    $con = mysql_connect("localhost", "username" , "password");
    if (!$con)
    {
       die('Could not connect: ');
    }
    else 
     { echo "connection failed....";}
   mysql_select_db("ManagersDatabase", $con);
mysql数据库可在
/var/lib/mysql/ManagersDatabase
中找到。 我的php页面可以在
/var/www/html/
中找到。
它不打印任何东西。我的代码有什么问题?

您应该连接到else块中的数据库

   $con = mysql_connect("localhost", "username" , "password");
    if (!$con)
    {
       die('Could not connect: ');
    }
    else    // if connection is made, then select the DB
     { 
       mysql_select_db("ManagersDatabase", $con);
     }

引述你的问题:

if (!$con)
{
   die('Could not connect: ');
}
else 
 { echo "connection failed....";}
。。。你注意到这没有多大意义吗?它的意思是如果(某物){//无法连接}或者{//连接失败},那么您的代码认为它总是失败

你应该做的是

$con = mysql_connect("localhost", "username" , "password");
if ($con === false)
{
   die('Could not connect: ' . mysql_error());
}
mysql_select_db("ManagersDatabase", $con);
所以它可以打印出任何东西

此外,您应该启用显示错误以在屏幕上获取错误,或者使用错误日志,以便将错误记录到某个地方

此外,请检查您是否已启用并正在使用mysql扩展,以及mysql_connect()函数是否可用。phpinfo();将告诉您有哪些扩展,函数_exists()可以告诉您该函数可用

因此,要做的事情是:

  • 修复上面列出的代码逻辑
  • 启用错误打印或日志记录
  • 检查是否启用了mysql扩展
  • 检查mysql_connect()函数是否可以调用

  • 编辑。由于缺少mysql扩展似乎是问题所在(“调用未定义的函数mysql_connect”):

    首先,您需要访问PHP配置。如果这是你的本地安装或服务器,你应该有-如果你正在使用别人的主机,他们应该改变这些事情的人

    给出一些假设,例如

    • 您正在使用本地apache服务器
    • 您使用的不是XAMPP或任何其他*AMP产品,而是普通安装
    这就是你应该做的:

    • 找到您的php.ini配置文件,或者根据php文件夹中的示例文件创建一个配置文件(如果没有)
    • 找到下面的行(.dll用于windows,.so用于linux,不知道其他行)


    • 从要使用的注释中去掉注释(第一个“;”)。您在示例中使用的是第一个,其他的用于使用其他帖子中描述的其他抽象,因此如果您想使用现有的代码,可以取消对第一个的注释
    • 如果您想立即看到任何配置问题,也可以启用“显示\u启动\u错误”
    • 检查“extension_dir”设置是否正确,是否指向具有上述.dll扩展名的文件夹
    • 重新启动apache服务器

    这是您使用PDO进行连接的方式:


    其他方法已经过时,很快就会(谢天谢地)被弃用

    这是项目的模板文件connect.php。你可以用它

    <?php
    // Connecting, selecting database
      $link = mysql_connect('localhost', 'root', '') or die('Could not connect: ' . mysql_error());
    //echo 'Connected successfully';
      mysql_select_db('procost') or die('Could not select database');
    ?>
    
    
    
    您不应该在问题中发布您的实际用户名和密码。这不是我的实际用户名和密码。。。。!!请不要对新代码使用
    mysql.*
    函数。它们不再得到维护,社区已开始恢复。看到了吗?相反,你应该学习并使用或。如果你不能决定,将帮助你做出选择。如果你想学的话,原来的问题看起来是可以的,所以我把它们删掉了。如果你在发布之前已经更改了它们,一切都很好:)它不会打印任何内容还是会打印“连接失败”?我尝试了mysqli方式…但它没有显示任何内容…这意味着连接已经完成!!!是的,如果没有输出,这意味着它错过了
    die('error')
    ,并通过了/connected。从mysql切换到mysqli或者PDO只是使用了另一层抽象。虽然我完全同意应该进行切换,但它并没有真正回答这里提出的问题。@Lawrence Cherone,我在哪里可以添加print\u r?@Lawrence Cherone好吧,首先,使用mysql\u本身并不是错误的。在相当长的一段时间内,这是一种推荐的方法,并且不是所有人都可以升级他们的PHP堆栈。这也是推测,但如果用户看到的是一个空页面,切换抽象层也无济于事,因此这是“教错了东西”无论如何-我猜需要启用扩展并显示错误…它给出了:调用未定义的函数mysql\u connect…如何修复它?@kinana.yasin在回答中添加了一些详细信息。你做了什么:检查“extension\u dir”设置是否正确,并指向拥有上述.dll扩展名的文件夹!!!我只是启用了mysql.so,在同一个文件中有一个设置“extension_dir”,它应该指向mysql.so文件所在的文件夹。我搜索了mysql.so,所以我可以找到它…顺便说一下,我使用了php5!!!在哪里可以找到它?
    <?php 
    try{
        $con = new PDO('mysql:host=127.0.0.1;dbname=your_database','root','password');
        $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $con->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        $con->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
    }catch (Exception $e){
        die('Cannot connect to database. Details:'.$e->getMessage());
    }
    ?>
    
    <?php
    $con = new mysqli("127.0.0.1", "user", "password", "your_database");
    if ($con->connect_errno) {
        die("Failed to connect to MySQL: (".$con->connect_errno.") ".$con->connect_error);
    }
    print_r($con);
    ?>
    
    /*
    mysqli Object
    (
        [affected_rows] => 0
        [client_info] => mysqlnd 5.0.10 - 20111026 - $Id: b0b3b15c693b7f6aeb3aa66b646fee339f175e39 $
        [client_version] => 50010
        [connect_errno] => 0
        [connect_error] => 
        [errno] => 0
        [error] => 
        [error_list] => Array
            (
            )
    
        [field_count] => 0
        [host_info] => 127.0.0.1 via TCP/IP
        [info] => 
        [insert_id] => 0
        [server_info] => 5.5.25a
        [server_version] => 50525
        [stat] => Uptime: 10  Threads: 1  Questions: 1  Slow queries: 0  Opens: 33  Flush tables: 1  Open tables: 26  Queries per second avg: 0.100
        [sqlstate] => 00000
        [protocol_version] => 10
        [thread_id] => 1
        [warning_count] => 0
    )
    */
    
    <?php
    // Connecting, selecting database
      $link = mysql_connect('localhost', 'root', '') or die('Could not connect: ' . mysql_error());
    //echo 'Connected successfully';
      mysql_select_db('procost') or die('Could not select database');
    ?>