MySQLでテーブル選択できないエラーが発生する場合の対処法

このQ&Aのポイント
  • MySQLのテーブル選択でエラーが発生した場合、アクセス権限の設定を確認しましょう。
  • エラーメッセージによると、アクセス権限がないためにテーブルを選択できない可能性があります。
  • アクセス権限を設定するためには、特権を持つユーザでphpMyAdminにログインし、アクセス権限を付与する必要があります。
回答を見る
  • ベストアンサー

MySQLのテーブル選択について

ある無料サーバでBBSをアップしようと思い挑戦しましたが無理だったのでご教授お願いいたします。 そのサイトにあるphpMyAdmin 2.6.2を使ってデータベース「toshi」を作りテーブル「bbs」にして6個のフィールドを作りました。 MySQL4.0.27ヴァージョン [bbs.php] $link = mysql_connect('localhost','toshi','***'); if(!$link){ die('読み込みできません。エラーが発生しています。'.mysql_error()); } $dbdate = mysql_select_db('bbs',$link); if (!$dbdate){ die('データベース選択失敗です。'.mysql_error()); } とした場合 「データベース選択失敗です。Access denied for user: 'toshi@localhost' to database 'bbs'」 というエラーが表示されます。 データベースへの接続はできているみたいなのですがどうもテーブルが選択できないみたいです。 bbsテーブルがないわけでないのでたぶんアクセス権限の無いテーブルなのかもしれません。 アクセス権限をあるようにしたいのですがどうすればいいのでしょう?

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

mysql_select_db はデータベースを選択する関数です。つまり選択すべきはデータベース「toshi」ですから $dbdate = mysql_select_db('toshi',$link); としなければいけません。 テーブルは「SELECT * FROM xxxx」の xxxx の部分などで指定されます。

p_r_c_h
質問者

お礼

ありがとうございます(*^_^*) べんきょうになりました。

関連するQ&A

  • MySQLでのデータベースの選択ができません。

    初めまして。 PHPを用いてMySQLを操作しようとしています。 接続はうまくいくのですが、データベースを選択する際に失敗します。 XAMPPを使用しています。 色々と調べてみましたが 全くの初心者のため、的を得た情報にたどり着けず、 皆様のお力をお借しいただきたいと思います。 PHPは以下のようにしました。 <?php $hostname = "localhost"; $user = "root"; $password = ""; $dbname = "weather"; $conn = mysqli_connect("$hostname","$user","$password"); if (!$conn) { die("接続失敗" . mysqli_connect_error()); } print "接続成功" . mysqli_get_host_info($conn) . "\n"; $selectdb = mysql_select_db("$dbname"); if (!$selectdb) { die("選択失敗:".mysql_error()); } print("$dbname"."に接続成功"); $close = mysqli_close($conn); if ($close) { print("切断成功"); } ?> これを実行すると 接続成功localhost via TCP/IP 選択失敗:Access denied for user ''@'localhost' to database 'weather' という表示になります。 権限は以下のようになっています。 ユーザ ホスト 種別 特権 権限委譲 操作 root 127.0.0.1 グローバル ALL PRIVILEGES はい root localhost グローバル ALL PRIVILEGES はい 特権には全てチェックがついているので ユーザ権限の部分は問題ないと思うのです。 素人なりに考えてみたら 『Access denied for user ''@'localhost' to database 'weather'』 の@の前が空欄になっているのが原因なのかなと思いましたが どうすればいいのかわかりませんし、 その原因にも自信がありません。 初めて質問するので 失礼な部分などがあればお許し下さい。 どうかよろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • mysql_select_db()関数に関して・・・。MySQLでテーブルの作成ができません。

    こんにちは、さくらインターネットのレンタルサーバでMySQLとphpを連動させたサイトを作っているのですが、初歩的なことでつまずいてしまい困っています。 まず、フォームで入力させたデータをPOSTで受け取り、その受け取ったデータをテーブル名として、データベース上にテーブルをつくりたいのですが、エラー文が表示されるだけでできません。 データベース自体への接続はできているようなのですが、phpMyAdminで見ても全くできていません。SQL文をphpMyAdminで実行するときちんと正常にテーブルができますので、そもそもデータベースが使用できないとか、もしくはSQL文の間違いでもなさそうです。 $t1 = $_POST['test1']; $t2 = $_POST['test2']; echo"{$t1}を受け取りました<br>"; $link = mysql_connect('mysql**.db.sakura.ne.jp', 'ユーザー名', 'パスワード'); if (!$link) { die('接続失敗です。'.mysql_error()); } print('接続に成功しました。<br>'); //1.さくらインターネット内にあるデータベースの選択 $db_name = "自分のデータベース名"; $selectDB = mysql_select_db($db_name,$link) or die("接続できません。"); //2.データベース内にテーブルを作成。 echo"{$t1}がテーブル名になります。<br>"; //3.テーブル作成用SQL文 $str_sql = "CREATE TABLE {$t1}" . "(" . "{$t2} INT(7) NOT NULL," . ");"; //4.上のSQL文を実行してテーブルを作る。 mysql_query($str_sql,$selectDB); echo"データベース内にテーブル「{$t1}」を作成しました。<br>"; //データベースへの接続を切断 $close_flag = mysql_close($link); if ($close_flag){ print('切断しました。<br>'); } 実行結果:Warning: mysql_query(): supplied argument is not a valid MySQL-Link resourceとなってテーブルは作成されず。 自分でも調べて見たところ、mysql_connect()での接続はちゃんとできているようなのですが、その次のmysql_select_db()関数がうまく働いていないようです。 つまりデータベースの選択ができていないので当然エラーとなるようです。 もう何日も悩んでいます。わかる方がいましたらどうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • MySQLにSQLを実行できない

    こんにちは。 今MySQLを勉強中なのですが、以下のようなエラーが解決できずに困っています。 どなたかお助けよろしくお願いいたします。 状況と致しまして、 レンタルサーバーにphpMyAdminを設置し 管理者に与えられたデータベースに「MLB」というテーブルを作成(特権なし)しました。 そこで以下のような単純なphpを組んで読み込んで見ることにトライしたのですが <?php //サーバーに接続 $my_Con = mysql_connect("localhost","データベース名","パスワード"); if($my_Con == false){ die("MYSQLの接続エラー"); }else{ echo "接続成功<br>"; if(mysql_select_db("データベース名",$my_Con)){ echo "データベースにアクセス成功<br>"; $my_Row = mysql("SELECT * FROM MLB",$my_Con); if(!$my_Row){ die(mysql_error()); } while($row = mysql_fetch_array($my_Row)){ echo $row["id"]; echo $row["stadium"]; echo "<br>"; } }else{ die("データベースへのアクセスエラー"); } } ?> 以下のようなエラーが出てしまい解決できない状態です。 接続成功 データベースにアクセス成功 Access denied for user 'データベース名'@'localhost' to database 'SELECT * FROM MLB' これは特権なしが影響しているのかな?とも考えたのですが、 調べてみた所、 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ root で接続をしようとする場合に、次のようなエラーが出るときには、'root' の User フィールドに、user テーブルのエントリがないことを示します。そのため、mysqld がクライアントのホスト名を識別できない状態です。 Access denied for user ''@'unknown' to database mysql この場合、--skip-grant-tables オプションでサーバを立ち上げ、/etc/hosts ファイル、または \windows\hosts で、ホストのエントリを付加します。 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ 解決になるらしいのですが、これはレンタルサーバー側に何か問題があるということでしょうか? どのように解決すればよいか、どなたかご教授をよろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • PHPでMySQLへの接続

    お世話になります。 phpを用いてMySQLへ接続したのですが、データが空で戻ってきました。lowは件数表示されましたし、行数もその分返ってきています。何か原因は考えられるでしょうか? <html> <head> <title>PHP TEST</title> </head> <body> <?php $link = mysql_connect('localhost', 'XXXX', 'XXXX'); if (!$link) { die('接続失敗です。'.mysql_error()); } print('<p>接続に成功しました。</p>'); $db_selected = mysql_select_db('XXXX', $link); if (!$db_selected){ die('データベース選択失敗です。'.mysql_error()); } print('<p>uriageデータベースを選択しました。</p>'); //mysql_set_charset('utf-8'); $result = mysql_query('SELECT * FROM sample'); if (!$result) { die('クエリーが失敗しました。'.mysql_error()); } while ($row = mysql_fetch_assoc($result)) { print('<p>'); print('id='.$row['str']); print(',name='.$row['etc']); print('</p>'); } $close_flag = mysql_close($link); if ($close_flag){ print('<p>切断に成功しました。</p>'); } ?> </body> </html>

    • ベストアンサー
    • PHP
  • mysql_select_dbでエラーが出ます

    phpのmysql_select_db()でデータベースを選択すると Access denied for user ''@'localhost' to database 'データベース名' とエラーが出ます。 元もとあるtestというデータベースは選択できましたが、 phpmyadminで新たに作成したデータベースだとエラーになります。 エラーの意味と対応方法をご教授下さい。 よろしくお願いします。 環境 さくらインターネットのVPS CentOS php5.1.6 mysql5.0.77 phpMyAdmin2.11.11.1 mysql_connect()ではrootでログイン

    • ベストアンサー
    • MySQL
  • xampp(php,apache,mysql)で勉強しています。

    xampp(php,apache,mysql)で勉強しています。 データーベースにつなぐときに、コマンドプロンプトやphpmyadminから接続すると つなぐことができるのですが、phpのソースからmysqlに接続しようとすると、 Access denied for user 'ODBC'@'localhost' とのエラーがでます。 grantコマンドを使って権限の設定はしています。どうすればエラーが出なくなる でしょうか?

  • mySQLでINSERT Errorとなります。

    初心者です。よろしくお願いいたします。 データを入れたいのですが、エラーとなってしまいます。 以下でデータベースとテーブルを作成し、 <?php $db_name="tori"; $tbl_name = "hato"; $db = mysql_connect('localhost', 'root', ''); if (!$db) { die('接続できません: ' . mysql_error()); } $sql = 'CREATE DATABASE tori'; if (mysql_query($sql, $db)) { echo "データベースtori の作成に成功しました\n"; } else { echo 'データベースtoriの作成に失敗しました: ' . mysql_error() . "\n";} mysql_select_db($db_name,$db) or die("データベースへの接続エラー"); $query ="create table {$tbl_name} ( id char(8) primary key, date TEXT, sex TEXT, age TEXT )TYPE=MyISAM"; mysql_query($query); $query ="INSERT INTO `houzingpark`.`hatogaya` ( id , date , sex , iro ) VALUES ( '2', 'uu', 'ii', 'po' )"; mysql_close($db); ?> 以下で入れ込みたいのですが、出来ないのです。 <?php $db_name="tori"; $tbl_name = "hato"; $db = mysql_connect('localhost', 'root', ''); if (!$db) { die('接続できません: ' . mysql_error()); } mysql_select_db($db_name,$db) or die("データベースへの接続エラー"); $sql="INSERT INTO hatogaya ( id , date , sex , iro ) VALUES ( 3, 2005-12-3, mesu, cya )"; mysql_query($sql); if(!$result){print 'INSERT Error!';} echo $sql; mysql_close($db); ?> でINSERTしようとするのですが、INSERT Error!と表示されてしまいます。 Adminで見るとデータベースとテーブルは出来ているのですが、どうしてもINSERTできないのです。 もう何時間も悪戦苦闘しております。 どなたかご指導よろしくお願いいたします。

  • Mysqlに入れません

    PHPのパッケージxamppでMySQL 5.0.51aをインストールしています。 しかしどうあがいてもMySQLに入れません。 C:\xampp\mysql\bin>mysql ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) C:\xampp\mysql\bin>mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) C:\xampp\mysql\bin>mysql -u root -p root Enter password: **** ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 教えてください。お願いいたします。

    • ベストアンサー
    • MySQL
  • mysqlでのテーブルについて

    現在PHP+MYSQLでBBSを作っています。 サイトの構成上、複数のBBSを設置しているのですが、 BBS一つに対してLOGテーブルを一つ作っています。 テーブル数が非常に多くなり不安になっています。 (一つのトピックに対して一つテーブルが生成されます) データーベースを構築するのは初めてで戸惑っています。 MYSQLでテーブルが膨大になるのは問題があるのでしょうか? 一つのテーブルにレコードを格納していったほうがいいのでしょうか? 又、テーブル数に適正な数、上限などもあったりするのでしょうか? ご存知の方がいらしゃいましたらご教授お願い致します。

    • 締切済み
    • PHP
  • MySQLで0で検索できない

    以下のようなPHPのソースとMySQLのテーブルで、numberが0の行をhtmlで取得しようとしているのですが、検索窓に0を入れて検索しても取得できません。ちなみに、numberが1や2の行は取得することができます。 なぜnumberが0の行を取得できないかと、どうすればnumberが0の行を取得することができるか教えてください。 <PHPのソース> <?php $url = "localhost"; $user = "root"; $pass = ""; $db = "test"; $html = ""; // MySQLへ接続する $link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。"); // データベースを選択する $sdb = mysql_select_db($db,$link) or die("データベースの選択に失敗しました。"); // クエリを送信する $sql = "SELECT * FROM test"; $result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql); //結果セットの行数を取得する $rows = mysql_num_rows($result); ?> <form action="" method="post"> <input type="text" name="numberSearch" value=""> <input type="submit" value="検索"> </form> <?php //表示するデータを作成 if($rows && !empty($_POST['numberSearch'])){ while($row = mysql_fetch_array($result)) { if ($row["number"] == $_POST['numberSearch']) { $html .= "<tr>"; $html .= "<td>".$row["alphabet"]."</td><td>".$row["number"]."</td>"; $html .= "</tr>\n"; } } }else{ $msg = "データがありません。"; } // MySQLへの接続を閉じる mysql_close($link) or die("MySQL切断に失敗しました。"); ?> <html> <head> <meta charset="utf-8"> <title>numberSearch</title> </head> <body> <table width = "200" border = "0"> <tr bgcolor="##ccffcc"><td>alphabet</td><td>number</td></tr> <?= $html ?> </table> </body> </html> <データベースのテーブル> alphabet number A 0 B 1 C 2 D 1 E 1 F 0 G 1

    • ベストアンサー
    • MySQL

専門家に質問してみよう