2

我正在尝试学习 php 和 mysql。所以我尝试使用 phpmyadmin 创建一个数据库并将其与我的 php 连接。这是一个简单的示例,我尝试查看数据库是否正常工作

<?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);
?>

我明白了

 Database query failed::: No database selected

这意味着比这部分代码

<?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];
}

?>

不起作用(我在每个 if 中放置了不同数量的“:”。任何帮助将不胜感激!谢谢!

4

4 回答 4

4

您的代码的逻辑没有意义,因为如果连接没有发生,那么您将无法选择数据库,并且您的数据库选择语句在您无法连接到数据库的逻辑范围内。试试这个:

$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()); 
   } 
}
于 2012-05-22T17:09:34.807 回答
2

我必须在 mysql_connect 调用中传递用户名和密码。这是我的数据库 open() 函数。

    $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;
于 2012-05-22T17:16:03.650 回答
1
die("Database connection failed: " . mysql_error());
$db_select = mysql_select_db("nameofdatabase",$connection);

mysql_select_db不可能跑到这里来。它只在死后调用。

$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());
}
于 2012-05-22T17:07:16.847 回答
-1

此外,检查您是否输入了服务器密码也是值得的。$connection = mysql_connect("localhost","root"); (缺少密码)

以下代码将捕获可能发生的任何其他错误,并且像下面的答案一样,这将提供 mysql 连接错误,以防万一。

    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());
   }
于 2012-05-22T17:27:42.577 回答