Reputation: 227
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
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
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
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
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