【问题标题】:Could not select database无法选择数据库
【发布时间】:2015-10-18 12:52:53
【问题描述】:

大家好,我正在尝试为登录编写一些代码,我已经掌握了所有内容,但每当我尝试登录时,它都会显示无法选择数据库。我想不通,我用 One.com 托管,当我进入 PHP 和 MySQL 设置时,它说数据库名称是“c343_co_uk”,这是我在下面的代码中使用的:

更新:它正在检测数据库,但每当我尝试使用与 MySQL 上完全相同的用户名和密码登录时,它都会显示无效登录

这是我的Connection.php

<?php
$username = "c343_co_uk";
$password = "abc";
$hostname = "c343.co.uk.mysql"; 

//connection to the database
$connection = mysql_connect($hostname, $username, $password) 
  or die("Unable to connect to MySQL");


$selected = mysql_select_db("c343_co_uk",$dbhandle) 
  or die("Could not select Database");

?>

Loginform.php

<!DOCTYPE html>

<html>

<a href="index.html" title="back to home">Home</a>
</font>
    <head>

        <style>
            body {
                font-size: 14px;
            }

        </style>
        <link rel="stylesheet" type="text/css" href="website.css" />
    </head>
    <body> 


    <div id="loginform" style="font-family: 'ClearSans-Thin'; color: Black">


        Please enter your login details<br /><br />
        Username:<br />
        <form method="post" action="loginsubmit.php">
            <input type="text" name="username" />
            <br />
            Password:<br />
            <input type="password" name="password" />
            <br />
            <input type="submit" name="submit" value="Submit" />
        </form>
        </center>
</div>
</body>
</html>

登录提交.php

<?php
session_start();
?>
<font face="ClearSans-Thin">
<font color="lightgray">

<?php

include 'connection.php';
include 'loginform.php';
?>
<center>
<?php
if (isset($_POST['submit'])) 
    {
    $user = $_POST['username'];

    $pass = $_POST['password'];
    //Counts up how many matches there are in the database
    $query = "SELECT COUNT(*) AS cnt FROM users WHERE Username='" . mysqli_real_escape_string($connection, $user) . "' && Password='" . mysqli_real_escape_string($connection, $pass). "'";
    $result = mysqli_query($connection, $query);
    $row = mysqli_fetch_assoc($result);

    $queryadmin = "SELECT COUNT(*) AS cnt FROM admin WHERE Username='" . mysqli_real_escape_string($connection, $user) . "' && Password='" . mysqli_real_escape_string($connection, $pass). "'";
    $resultadmin = mysqli_query($connection, $queryadmin);
    $rowadmin = mysqli_fetch_assoc($resultadmin);
    //If count is more than 0, log user in.
    if ($row["cnt"] > 0) 
    {
        $_SESSION["userlogged"] =  $user;
        echo "Logged in - Press the home button to return to the homepage";
    } 
    //count for user table is 0, if there are more than 0 matches in the admin database, start admin session
    else if ($rowadmin["cnt"] > 0 )
        {
            $_SESSION["adminlogged"] = $user;
            echo "Logged in - Press the home button to return to the homepage";
        }
    else 
    {
        echo 'Not a valid login';
    }
}
?>
</center>

【问题讨论】:

  • 你在哪里定义$dbhandle
  • 试试echo mysql_error()看看实际的错误信息是什么。
  • 我用连接交换了 dbhandle,现在它正在连接,我的错!但是它不能识别表中的凭据,所以说无效登录。

标签: php html mysql connection


【解决方案1】:

试试这些:

 $dbname = "c343_co_uk"
 $username = "c343_co_uk";
 $password = "abc";
 $hostname = "c343.co.uk.mysql"; 

替换

    $selected = mysql_select_db("c343_co_uk",$connection) 
  or die("Could not select Database");

到这里:

$selected = mysql_select_db($dbname,$connect) 
  or die("Could not select Database");

我希望工作!祝你有美好的一天!

【讨论】:

    【解决方案2】:

    尝试替换

    $selected = mysql_select_db("c343_co_uk",$dbhandle) 
      or die("Could not select Database");
    

    $selected = mysql_select_db("c343_co_uk",$connection) 
      or die("Could not select Database");
    

    【讨论】:

    • 实际上现在是一个新的错误,说它不是一个有效的登录,我将复制并粘贴 loginsubmit php 代码和登录表单,一秒钟 :)
    【解决方案3】:

    你可以这样试试

    <?php
    define("DB_HOST", "c343.co.uk.mysql");
    define("DB_USER", "c343_co_uk");
    define("DB_PASSWORD", "abc");
    define("DB_DATABASE", "c343_co_uk");
    $conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD,DB_DATABASE );
    
    ?>
    

    【讨论】:

    • 为什么?这要解决什么问题..?请解释一下。
    【解决方案4】:

    使用此连接:-

    $username = "c343_co_uk";
    
    $password = "abc";
    
    $hostname = "c343.co.uk.mysql";
    
    $connection = mysql_connect($hostname, $username, $password);
    
    @mysql_select_db("c343_co_uk",$connection);
    

    【讨论】:

      【解决方案5】:

      你没有用mysql做主机,就做c343.co.uk:

       <?php
       $username = "c343_co_uk";
       $password = "abc";
       $hostname = "c343.co.uk"; 
      
       //connection to the database
       $connection = mysql_connect($hostname, $username, $password) 
         or die("Unable to connect to MySQL");
      
      
       $selected = mysql_select_db("c343_co_uk",$dbhandle) 
         or die("Could not select Database");
      
       ?>
      

      我希望这项工作!其他的我再看看

      【讨论】:

        猜你喜欢
        • 2014-09-08
        • 2015-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-07
        相关资源
        最近更新 更多