1. ホーム
  2. php

[解決済み] 選択されたデータベースがありません - PHP & MySQL

2022-02-07 07:05:02

質問

データベースに接続しようとしているのですが、コードを実行するとエラーになります。どなたか、何が問題なのか、また、私のPHPコードに何かエラーがあるのか、教えていただけませんか?ありがとうございます。

Error: No database selected

PHPのコードです。

include('.conf.php');
$prof = $_GET['profile'];
$prof = addslashes(htmlentities($prof));
$query = "SELECT * FROM aTable where id = '".mysql_real_escape_string($prof)."'";
$info_array = mysql_query($query, $con) or die (mysql_error()).;

while($row = mysql_fetch_array( $info_array )) 
{
    echo $row['num1'];
    echo "</br>";
    echo $row['num2'];
    echo "</br>";
    echo $row['num3'];
    echo "</br>";
    echo $row['num4'];
};

mysql_close($con);

.conf.php ファイルを作成します。

<?php
    $conf['db_hostname'] = "xxx";
    $conf['db_username'] = "xxx";
    $conf['db_password'] = "xxx";
    $conf['db_name'] = "xxx";
    $conf['db_type'] = "mysql";

    $con = mysql_connect('xxx', 'xxx', 'xxx') or die (mysql_error());
    $db  = mysql_select_db("aTable", $con);
?>

解決方法は?

パスワードが間違っていて、それを修正する必要がある場合を除き、以下のコマンドを実行します。 GRANT ステートメントを使用して、データベース・ユーザーにアクセス権を付与します。

GRANT ALL PRIVILEGES ON aTable.* TO xxx@localhost IDENTIFIED BY 'password_for_xxx';

上記は全ての権限を付与しています。必要なものだけに制限した方が良い場合が多いです。例えば、SELECTだけするつもりで、データを変更しない場合です。

GRANT SELECT ON aTable.* TO xxx@localhost IDENTIFIED BY 'password_for_xxx';

更新情報

データベース名を dedbmysql を変更します。 mysql_select_db() を呼び出す。

$db = mysql_select_db("dedbmysql", $con);

これに続いて GRANT はおそらく不要でしょう。なぜなら、あなたのホストはすでに正しいデータベースパーミッションを割り出しているかもしれないからです。