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 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());
}
于 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 に答える