• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP+MySQL on さくらサーバー)

PHP+MySQL on さくらサーバーでエラーが発生する問題について

このQ&Aのポイント
  • さくらサーバーでプレミアムプランを契約しているが、PHP4.3.10、MySQL 4.0.26でエラーが発生する。データベースのユーザー名は「xxx」、パスワードは「yyy」として、データベース名は「xxx」という一つのテーブル「User」が存在する。
  • 問題の原因は不明だが、初歩的なミスが原因かもしれない。さくらサーバーの初期設定やデータベースの接続情報を確認することが必要だ。
  • エラーの解決方法は確立していないが、さくらサーバーのサポートに問い合わせることで解決する可能性がある。

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

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

すみません#1です。いま試しにやってみたらテーブル名「User」は通りますね。 さらにいま気がついたのですが mysql_query($sql, $conn)); この最後の括弧が2つあるのですが、 これだったりしませんかね。

xojan
質問者

お礼

ぎゃああああ。動きました。どうもありがとうございます!!! 括弧を消してみたら、、、正常に動きました。って、こんな単純な文法ミスに2日間気づかないなんて馬鹿でした。エディタをよく叱っておきます。(すみませんm(_ _)m) わざわざテストまでしていただいて、どうもありがとうございました。

その他の回答 (1)

回答No.1

テーブル名「User」が関数名とかぶっている予約語だからではないでしょうか。 $sql = 'SELECT * from `User`'; のようにテーブル名を「`」で囲んでみてください。 MySQL 4.1 リファレンスマニュアル :: 8.7 MaxDB の予約語: http://dev.mysql.com/doc/refman/4.1/ja/maxdb-reserved-words.html

参考URL:
http://dev.mysql.com/doc/refman/4.1/ja/maxdb-reserved-words.html
xojan
質問者

補足

まさか、Userが予約語だったとは思っていませんでした。迅速な回答ありがとうございます。 しかし、ご助言の通りに、バッククオート(であってますよね?)で囲んでみたのですが、うまく行きません。また、予約語でないReqというテーブルを作ってみて、ソースの該当箇所をReqに置き換えてみたりしましたが、やはり動きませんでした。 $sql = 'SELECT * from `User`'; mysql_query($sql, $conn)); の二行をコメントアウトしてみたところ、正常に動作したので、ここが鬼門なのだと思うのですが。。。

関連するQ&A