みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

レンタルサーバでPHP(pico)からMySQLに接続したい

初めて質問させていただきます。
phpもmySQLも初心者なのでもしおかしいところや足りないところがありましたらご指摘ください。

レンタルサーバ(お名前.com)にて、xoops cubeをインストール。
picoモジュールを追加。
phpmyadminモジュールを追加し、自前テーブルを作成。
picoのコンテンツ編集により、phpプログラムを記述し、自前テーブルに接続。

やっている内容は、
リストボックスで選択された単語からDBを検索するフォームをPOSTで送信
次ページにて一覧を表示する
です。

自分記述したphpプログラムでDBConnectしています。

問題箇所は、
検索結果は表示され、想定した通りのhtmlが表示されるのですが、ページの一番下に以下のコメントが表示されてしまいます。

Warning [PHP]: mysql_real_escape_string() [function.mysql-real-escape-string]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in file xoops_trust_path/modules/pico/main/index.php line 83
Warning [PHP]: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in file xoops_trust_path/modules/pico/main/index.php line 83

色々調べてみたところ、socketの相違だと思い、以下を調べました。

phpinfo()にて表示されたsocketは「/tmp/mysql.sock」
phpmyadminから見た変数socketは「/tmp/mysql.sock」

上記のように、相違はない模様。
DBの内容も取って来れてるので問題はないのですが、画面に常にエラー表示がされてしまうのはとても気になります。

原因に思い当たるふしがあればご教授願えませんでしょうか。
ちなみにレンタルサーバなのでphp.iniは変更出来ません。

投稿日時 - 2009-10-26 19:49:35

QNo.5398795

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

mysql_real_escape_string関数は、mysqlへの接続が確立した後で無いとwarningが出ます。
つまり、
mysql_connect関数の前や、mysql_close関数の後など、DB接続をきっている場所で使用するとwarningを吐きます。
なので、
DB接続

POSTされたデータなどをmysql_real_escape_stringなどでエスケープ

SQL発行

DB接続を閉じる

という流れになっていない箇所が無いか確認してください。

投稿日時 - 2009-10-27 00:56:33

お礼

回答ありがとうございます。
私が書いたものに関してはその順番になっているのですが、もしかしたらpicoと絡むとそうなっているのかもしれません。
しかし、私にはそこまで確認する技術がなく・・・(泣)。
いったん、picoではなく単純にモジュール作成からやってみて勉強しなおします。
また何かありましたらご教授ください。
ほんとうにありがとうございました!

投稿日時 - 2009-10-28 10:57:50

あなたにオススメの質問