プロが教えるわが家の防犯対策術!

こんにちは。
PHPとmysqlでデータベースを作ろうと思っています。
mysqlサーバーに今回使うAテーブルだけを使用できる権限でuesrを作りました。
PHPから接続するのに

if(!$con = mysql_connect("localhost", "user", "test")){
die("データベース接続エラー.<br />");
}
mysql_select_db("A","$con");

というスクリプトを書いたら

Warning: Access denied for user: 'user@localhost' (Using password: YES) in /usr/local/asuka/virtual/B3X000804/files/htdocs_russ.jp/shopping/shop_kanri/knri_menyu.php on line 11

Warning: MySQL Connection Failed: Access denied for user: 'user@localhost' (Using password: YES) in /usr/local/asuka/virtual/B3X000804/files/htdocs_russ.jp/shopping/shop_kanri/knri_menyu.php on line 11
データベース接続エラー.

というエラーが表示されデータベースに接続できません。
何故でしょうか?どうにか接続する方法はありませんか?
もしくはroot権限を持たさないと接続できないのでしょうか?あいまいな質問で申し訳ございませんが、よろしくお願いします。

A 回答 (5件)

>ご指摘を頂いたので注意をしてユーザーとパスワードを振りなおしました。



>if(!$kon){
は修正しましたか?

>Warningがでなくなったということでしょうか。
と言う質問に対する回答は?

吐き出されるエラー、警告は一字一句正確に提示してください
    • good
    • 0

>としたらエラーがでなくなりましたが、



Warningがでなくなったということでしょうか。
だとすると

>if(!$kon){
>die("データベース接続エラー.<br />");
>}

で値が代入されていないであろう$konが評価されていますので
ifブロック内に突入してしまっているだけでは無いでしょうか
yusuke2005さんも仰っているようにタイプミスが原因のような気がします。
    • good
    • 0
この回答へのお礼

ありがとうございます。
ご指摘を頂いたので注意をしてユーザーとパスワードを振りなおしました。
PHPより接続しなおすとやっぱりデータベース接続エラーというエラーを返します。
if文でデータベースの接続に失敗するとこのエラーを返すようにしているので、やはりデータベースに接続ができていないみたいです。何か他に考えられそうな原因はありますか?すみませんが、よろしくお願いします。

お礼日時:2004/08/19 18:41

amountainblastさんはタイプミスが多いですね。



>$con = mysql_connect("localhost", "user", "test")
>if(!$kon){
$konではなく$conですよね?

>Aテーブルだけを使用できる権限でuesrを作りました。
>if(!$con = mysql_connect("localhost", "user", "test")){
ユーザー名が違いますよ?
パスワードもtestであってますか?

最初に作った時点でタイプミスしてませんか?
恐らくタイプミスが原因だと思いますが。。
    • good
    • 0
この回答へのお礼

ありがとうございます。
ご指摘を頂いたので注意をしてユーザーとパスワードを振りなおしました。
PHPより接続しなおすとやっぱりデータベース接続エラーというエラーを返します。
if文でデータベースの接続に失敗するとこのエラーを返すようにしているので、やはりデータベースに接続ができていないみたいです。何か他に考えられそうな原因はありますか?すみませんが、よろしくお願いします。

お礼日時:2004/08/19 18:41

ユーザ追加がうまくいってないのではないでしょうか。



mysql>grant all privileges on A.* to user@localhost identified by 'test' with grant option;
mysql>flush privileges;

などでユーザ追加しても駄目ですか。
    • good
    • 0
この回答へのお礼

ありがとうございます。
ご指摘の通りにしましたが、ダメでした。
ログインの仕方を
$con = mysql_connect("localhost", "user", "test")
if(!$kon){
die("データベース接続エラー.<br />");
}
mysql_select_db("A","$con");
としたらエラーがでなくなりましたが、
データベースに接続できません。
mysqlのユーザーの権限には
(elect,insert,delete,update,create,drop,alter,index)の権限を持たせているのですが、これだとダメなのでしょうか?
root権限でmysql_connectしたら正常につながります。
すみませんが、もう少しご教授をお願いします。

お礼日時:2004/08/13 16:09

UNIX系なら、「("localhost", "user", "test")」の箇所を以下のようにしてみてください。



(\"localhost"\, \"user"\, \"test"\)
    • good
    • 0
この回答へのお礼

ありがとうございます。
ご指摘の通りにしましたが、ダメでした。
ログインの仕方を
$con = mysql_connect("localhost", "user", "test")
if(!$kon){
die("データベース接続エラー.<br />");
}
mysql_select_db("A","$con");
としたらエラーがでなくなりましたが、
データベースに接続できません。
mysqlのユーザーの権限には
(elect,insert,delete,update,create,drop,alter,index)の権限を持たせているのですが、これだとダメなのでしょうか?
root権限でmysql_connectしたら正常につながります。
すみませんが、もう少しご教授をお願いします。

お礼日時:2004/08/13 16:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!