【问题标题】:Unable to find database找不到数据库
【发布时间】:2016-07-30 11:49:21
【问题描述】:

我创建了一个 php 文件,它在我的服务器上。从chrome打开php文件后,显示“无法找到数据库”。

<?php

    $dbhost = "fdb7.biz.nf";
    $database = "2065616_knurum";
    $username = "2065616_knurum";
    $dbpass = "XXXXXXXXX";

    mysqli_connect($dbhost, $username, $dbpass, $database);

    @mysql_select_db($database) or die("Unable to find database");

    $name = isset($_GET["name"]) ? $_GET["name"] : '';

    $message = isset($_GET["message"]) ? $_GET["message"] : '';


    $query = "INSERT INTO test VALUES ('', '$name', '$message')";

    mysql_query($query) or die (mysql_error("error"));

    mysql_close();

    echo"hello";
    ?>

在几个助手 cmets 之后,这是正确的解决方案,并且有效。感谢所有回复的助手。

$dbhost = "fdb7.biz.nf";
$database = "2065616_knurum";
$username = "2065616_knurum";
$dbpass = "XXXXXXXX";

$link = mysqli_connect($dbhost, $username, $dbpass, $database);

if (!$link) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}


$name = isset($_GET["name"]) ? $_GET["name"] : '';

$message = isset($_GET["message"]) ? $_GET["message"] : '';

$query = "INSERT INTO test VALUES ('', '$name', '$message')";

mysqli_query($link, $query) or die (mysqli_error("error"));


echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;
mysqli_close($link);
?>

【问题讨论】:

  • 你检查你的口袋了吗???沙发后面???汽车座椅下面???它可能是您的代码隐藏的地方,因为我也找不到?以及您试图解决问题的证据....全部丢失!!!
  • @gavgrif 谢谢你的承诺。现在代码没有隐藏。
  • 嗨,如果有帮助,您可以在我的回答中勾选绿色检查

标签: php sql database


【解决方案1】:
1) check your database spelling.
2) have you given all the required privileges to user?
3) username and password is correct ?

【讨论】:

    【解决方案2】:

    试试这个来自http://php.net/manual/en/function.mysqli-connect.php的参考

    <?php
    
    $dbhost = "fdb7.biz.nf";
    $database = "2065616_knurum";
    $username = "2065616_knurum";
    $dbpass = "XXXXXXXXX";
    
    $link = mysqli_connect($dbhost, $username, $dbpass, $database);
    
    if (!$link) {
        echo "Error: Unable to connect to MySQL." . PHP_EOL;
        echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
        echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
        exit;
    }
    
    echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
    echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;
    
    mysqli_close($link);
    

    【讨论】:

      【解决方案3】:

      您正在混合使用库 mysqlmysqli

      选择后者,坚持下去

       @mysql_select_db($database) or die("Unable to find database");
      

      应该是

       @mysqli_select_db($database) or die("Unable to find database");
      

      【讨论】:

        【解决方案4】:

        首先,您不能混合使用mysql_* 函数和mysqli_* 函数,后者更好,因为mysql_* 已被弃用。

        $conn = mysqli_connect($dbhost, $username, $dbpass, $database);
        
        $query = "INSERT INTO test VALUES ('', '$name', '$message')";
        
        mysqli_query($conn, $query) or die (mysqli_error("error"));
        
        mysqli_close();
        

        此外,您不应隐藏错误消息:

        @mysqli_select_db($database) or die("Unable to find database");
        

        删除 @ 以启用错误报告。它在诊断语法错误方面非常有用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-08
          • 2021-06-17
          • 1970-01-01
          相关资源
          最近更新 更多