ElaGorilaki
ElaGorilaki

Reputation: 227

php my admin: no database selected

I am trying to learn php and mysql. So i tried making a database using phpmyadmin and connect it with my php. Here is a simple example where I try to see if the database is working

<?php
$connection = mysql_connect("localhost","root");
if(!$connection) {
    die("Database connection failed: " . mysql_error());
    $db_select = mysql_select_db("nameofdatabase",$connection);
    if (!$db_select) {
        die("Database selection failed:: " . mysql_error());
        }
    }
?>
<html>
<head>
<title>Databases</title>
</head>
<body>
<?php
$result = mysql_query("SELECT * FROM nameofdatabasetable", $connection);
if (!$result) {
    die("Database query failed::: " . mysql_error());
}
while ($row = mysql_fetch_array($result)) {
echo $row[1];
}

?>

</body>
  </html>
<?php
mysql_close($connection);
?>

and i get

 Database query failed::: No database selected

which means than this part of code

<?php
$result = mysql_query("SELECT * FROM users", $connection);
if (!$result) {
    die("Database query failed::: " . mysql_error());
}
while ($row = mysql_fetch_array($result)) {
echo $row[1];
}

?>

is not working (i put a different number of these ":" in each if. Any help would be appreciated! Thank you!

Upvotes: 2

Views: 9370

Answers (4)

eimmer
eimmer

Reputation: 319

I have to pass the username and password in the mysql_connect call. Here is my database open() function.

    $this->con_error = "";

    $db_con= mysql_connect($this->server, $this->username, $this->password);

    if (!$db_con) 
    {
        $this->con_error = mysql_error();
        return false;
    }       
    if(!mysql_select_db($this->database))
    {
        $this->con_error = mysql_error();
        return false;
    }

    return $db_con;

Upvotes: 2

Jose Escamilla
Jose Escamilla

Reputation: 1

Also it would be worth checking if you entered a password to your server. $connection = mysql_connect("localhost","root"); (Missing Password)

The following code will trap any other error that might be happening and like the answer below this will provide mysql conectivity errors in case there is any.

    try 
   {
        $connection = mysql_connect("localhost","root", "password");
        if(!$connection) {   
          die("Database connection failed: " . mysql_error());   
        }   
        $db_select = mysql_select_db("nameofdatabase",$connection);   
        if (!$db_select) {   
          die("Database selection failed:: " . mysql_error());   
         }   

   }catch (Exception $e){
       error_log(" DB Error: ".$e->getMessage());
   }

Upvotes: -1

user521990
user521990

Reputation: 829

The logic for your code doesn't make sense because if the connection doesn't happen then you would not be able to select a database and your database select statement is within the logic for if you cannot connect to the database. Try this instead:

$connection = mysql_connect("localhost","root"); 
if(!$connection) { 
   die("Database connection failed: " . mysql_error()); 
}else{
   $db_select = mysql_select_db("nameofdatabase",$connection); 
   if (!$db_select) { 
       die("Database selection failed:: " . mysql_error()); 
   } 
}

Upvotes: 4

Frank Farmer
Frank Farmer

Reputation: 39356

die("Database connection failed: " . mysql_error());
$db_select = mysql_select_db("nameofdatabase",$connection);

mysql_select_db cannot possibly run here. It's only called after die.

$connection = mysql_connect("localhost","root");
if(!$connection) {
  die("Database connection failed: " . mysql_error());
}
$db_select = mysql_select_db("nameofdatabase",$connection);
if (!$db_select) {
  die("Database selection failed:: " . mysql_error());
}

Upvotes: 1

Related Questions