• ベストアンサー
  • すぐに回答を!

<大至急!>ご教授願います。

MySQLで作ったお祭りのデータベースからデータを検索し、お祭りの名前と開催地だけを検索結果として表示させるというものを作っています。 しかし、エラーもなにも起きていないのに、検索しても結果が表示されません。検索結果の件数も反映されません。 PHPのプログラムの方にまだ問題があるのでしょうか?それともMySQLの方に問題があるのでしょうか? また、pearについても質問があります。pear listを実行すると問題なく見ることができるのですが、以下のような警告が表示されます。 PHP Warning: PHP Startup: Unable to load dynamic library 'ext\php_pdo_firebird. dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library 'ext\php_pdo_firebird.dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'ext\php_pdo_oci.dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library 'ext\php_pdo_oci.dll' - 指 定されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'ext\php_pspell.dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library 'ext\php_pspell.dll' - 指定 されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'ext\php_sybase_ct.dll ' - 指定されたモジュールが見つかりません。 in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library 'ext\php_sybase_ct.dll' - 指定されたモジュールが見つかりません。 勉強中と言ってもを初心者同然なので、ご教授いただきたいです。よろしくお願いいたします。 Windows7 PHP 5.4.9 MySQL 5.5 Apach 2.2.22 phpMyAdmin 3.5.4 <html> <head> <title>PHPのテスト</title> </head> <body> <?php require_once("MDB2.php"); $dbUser = "root"; $dbPass = "im1907720"; $dbHost = "localhost"; $dbName = "moe_db"; $dbType = "mysql"; $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; $conn = MDB2::connect($dsn); if(MDB2::isError($conn)) { die($conn -> getMessage()); } $conn -> disconnect(); //POSTされたデータを受け取り、エスケープします。 $search_key=addslashes($_POST['search_key']); $search_ken=addslashes($_POST['search_ken']); $sql= <<<EOS SELECT * FROM moeinfo WHERE name like '%$search_key%' OR address like '%$search_ken%' EOS; /* if(substr(PHP_OS,0,3) == 'WIN') { $sql=mb_convert_encoding($sql, "SJIS", "EUC-JP"); } */ $result=$conn->query($sql); if(MDB2::isError($result)) { die($result->getMessage()); } $count=$result->numRows(); print "検索結果は" .$count. "件です。<br>"; if($count> 0){ ?> <table width="450" border="1" cellspacing="0" cellpadding="8"> <tbody> <tr><th>イベント名</th><th>開催地都道府県名</th></tr> <?php while($rs=$result->fetchRow(MDB2_FETCHMODE_ASSOC)) { if(substr(PHP_OS,0,3) == 'WIN') { $rs['name']=mb_convert_encoding($rs['name'], "EUC-JP", "SJIS"); $rs['address']=mb_convert_encoding($rs['address'], "EUC-JP", "SJIS"); } } ?> <tr><td aling="center"><?=$rs['name']?></td> <td><?=$rs['address']?></td> </tr> </tbody> </table> <?php } //mysql_free_result ($result) ; $result->free(); $conn->disconnect(); ?> </body> </html>

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数341
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.2
  • shimix
  • ベストアンサー率54% (865/1590)

何故結果表示が while($rs=$result->fetchRow(MDB2_FETCHMODE_ASSOC)) のLoopを抜けてからになっているのでしょうか?書くとしたらLoopの内側に書かないとダメです。 while($rs=$result->fetchRow(MDB2_FETCHMODE_ASSOC)) { if(substr(PHP_OS,0,3) == 'WIN') { $rs['name']=mb_convert_encoding($rs['name'], "EUC-JP", "SJIS"); $rs['address']=mb_convert_encoding($rs['address'], "EUC-JP", "SJIS"); } ?> <tr><td aling="center"><?=$rs['name']?></td> <td><?=$rs['address']?></td> </tr> <?php } ?> なお、OSがWindowsかどうかでmb_convert_encodingしている意図はさっぱりわかりません。Windowsとそれ以外のOSで書き方に違いがあるわけはないのですが・・・・。もしWindowsとそれ以外で入力フォームや出力の文字セットを変えているとしても(そういうことをする意味がわかりませんが)MySQLにクライアントの文字セットを通知するだけで済む話です。 また、エスケープにaddslashesを使うのは如何なものかと。プレースホルダを使ってください。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

shimix様、解答ありがとうございます。 while文の部分は、私の書き間違いでした。申し訳ありませんでした。 mb_convert_encodingの部分に関しては、私が知り合いから貰ったPHPの本(速攻!図解プログラミング PHP+MySQL)に、 『Windows版MySQLの場合保存データの文字コードがShift_JISのため、PHPファイル(文字コードはEUC-JP)の中で作成されたSQLを発行すると、文字化けした状態で格納されてしまいます。このため、Windowsで稼働している時のみ、mb_convert_encoding関数で、SQL文の文字コードを「EUC-JP」から「SJIS」へ変換します。』 と書いてありました。 しかし、while文をshimix様のご指摘通り直した結果、文字化けしてしまい、mb_convert_encodingの部分をコメントアウトしたら文字化けも解消されました。 まだまだ勉強不足ですよね。 あきらめずに頑張っていきます。 ありがとうございました。

関連するQ&A

  • 指定されたモジュール・・・

    こんにちは。 最近「実践マスターPHP+MySQL」という本を使い、PHPの勉強を始めたばかりのものです。 PEARをインストールしてみようと思い、go-pear.batを実行したのですが、下記のようなメッセージが発生してしまいます。 PHP Warning: PHP Startup: Unable to load dynamic library 'c:\php\ext\mysql.dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'c:\php\ext\mysql.so' - 指定されたモジュールが見つかりません。 in Unknown on line 0    ・    ・ メッセージボックスが表示され、Entを押すと継続されて、下記インストール手順のメッセージが表示されます。 Are you installing a system-wide PEAR or a local copy? (system|local) [system] : そのまま、対話式を実行していくと、とりあえずはインストールできたのですが、本当にこれできちんとインストールできたのか疑問に思います。 調べてみた結果、c:\php\extの中には「php_mysql.dll」はあったのですが、「mysql.dll」、「mysql.so」はありませんでした。検索したのですが、この2つのファイルはどこにも存在していませんでした。 どうしたらいいのでしょうか?

    • 締切済み
    • PHP
  • cronでエラー

    いつも参考にさせていただいております。 早速質問をさせていただきます。 PHPのプログラムをcronを動かしているのですが以下のエラーがでます。 ------------------------------ PHP Warning: Unknown(): Unable to load dynamic library './php_gd2.dll' - ./php_gd2.dll: cannot open shared object file: No such file or directory in Unknown on line 0 ------------------------------ ライブラリがないと怒られているようですが、この回避方法は ありますでしょうか? ご教授よろしくお願いいたします。 環境 PHP:Version 4.3.2 Apache:2.0.40 (Red Hat Linux)

    • ベストアンサー
    • PHP
  • php.iniの修正

     こんにちは!最近Apache,PHP,MySQLをインストールしたんですが、今php.iniの修正に1つところが困ってます:  php.iniの中に“extension=php_mysql.dll”これ前の“;”を外すじゃない、 しかし、外してから、保存してApache2を再起動するとこんなメセージが出てくるですよ:“PHP Startup:unable to load dynamic library 'D:\PHP\ext\php_mysql.dll'-指定されたモジュールが見つかりません。” これは如何すればいいですか?分かる方がいましたら是非教えてください、お願いします!

    • ベストアンサー
    • PHP

その他の回答 (1)

  • 回答No.1
  • memphis
  • ベストアンサー率40% (970/2387)

>指定されたモジュールが見つかりません。 そのエラーが出ているなら、貴方が構築した環境に問題があります。 たぶん、apacheかphpのどちらかに原因があるでしょう。 設定ファイル、DLLなど正しく設定もしくは保存されているかを確認して下さい。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

memphis様 解答ありがとうございます。 memphis様のご指摘といろいろ調べた結果、DLLが正しく設定されていなかったため、起こった問題だということが分かりました。 ありがとうございました。

関連するQ&A

  • PHPのインストールに成功したはずが…

    OSはWindowsXPです。 昨日、Apache2とphp5のインストールをしました。 本(PHP5.0+MySQL5.0で構築する最速webシステムという本です。)を見ながらやりました。 最後にphpinfo()というタグをうって localhostで見てみたら機能していました。 そして今日 パソコンを使おうと思って起動したら 「(Warning) php Startup:Unable to load dynamic library 'C./php/ext\php-mbstring.dll'-指定されたモジュールが見つかりません 」 というような文が出てきました。 この警告を出さないようにするためには どうしたらいいでしょうか? ちなみに、まだ MySQLはインストールしていません。 (これが原因でしょうか?) ご指導の方お願いします。

    • ベストアンサー
    • PHP
  • PHPが動作しません

    困っております。。 PHPをインストールしたのですが、「Unable to load dynamic library c:\php\extensions\php_oci8.dll - 指定されたモジュールが見つかりません。」と表示されてしまいました。 c:\php\extensions 直下にはphp_oci8.dllも存在しますし、php.iniの設定でもパスは正しく指定してあります。 トラブルシューティングをご存知の方がいらっしゃましたら、お力を貸していただけますでしょうか。 環境は WindowsNT4.0SP6a IIS4.0 PHP4.3.2 です。

  • PHPにおいてopensslを有効にする方法

    PHP(XAMPP使用)においてopensslを有効にする方法 FuelPHPというフレームワークを導入しようと思い、 「はじめてのフレームワークとしてのFuelPHP」という 電子書籍を購入しました。 その書籍内で、「opensslを有効にする」という項目があり、 php.ini内の指定の場所に、 extension=php_openssl.dll という記述を付け加えるようにと指示がありました。 その通りにしてみたのですが、 Apacheを起動する際に、 PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_openssl.dll' - 指定されたモジュールが見つかりません。 というエラーメッセージが出ました。 そこで、openssl.dllを下記サイトよりダウンロードして、 ( http://jp.softpicks.net/dll/php_openssl-dll-1966 … ) C:\xampp\php\extフォルダの中に、 openssl.dllを入れてみました。 しかし、Apacheを再起動すると、 下記のような「Warning」が2度出ます。 PHP Startup: openssl: Unable to initialize module Module compiled with build ID=API20090606,TS,VC9 PHP compiled with build ID=API20090626,TS,VC6 These options need to match 上記の状態から、どうしても解決出来ないでいます。 ご教授頂けましたら幸いです。宜しくお願い致します。 環境: Windows7 64bit XAMPP Version1.7.2 PHP Version 5.3.0

    • ベストアンサー
    • PHP
  • PHPからMySQLへ接続設定

    お世話になります Fedora core3を使って PHPとMySQLを設定しているのですが 上手くいきません。よろしくお願いします。 現状としては、PHPは動作しています。 MySQLもターミナルからは動作確認できています。 ところがPHPからMySQLにつながりません。 方法は $conn = mysql_connect($hostname, $usrname, $password) としています。 どこの設定を見ればいいのか等教えていただけないでしょうか? 環境 OS:fedora core3 Apache:Tera Termにてrpm -q apacheで調べたのですが文字化けしてわかりません^^; Fedora core3で標準で入っているものと思います PHP:PHP4.3.11、関係ないかもしれませんが、php -vでversionを調べようとすると PHP Warning:Unknown(): Unable to load dynamic library '/usr/lib/php4/msql.so と出ます 以上よろしくお願いします

  • undefined function mb_send_mail で、メール送信できず。

    初めてPHP開発を行っています。 環境:WindowsXP、Apache/2.0.59、PHP/5.2.1 PHPプログラム内で、 mb_send_mail を使用しています。 Apacheのerror.logに以下のlogが表示され、 メール送信ができません。 ~~~~~~~~~~~~~~~~~~~~~~~~~ Unable to load dynamic library 'php_mbstring.dll' Unable to load dynamic library 'php_snmp.dll' PHP Fatal error: Call to undefined function mb_send_mail() ~~~~~~~~~~~~~~~~~~~~~~~~~ WindowsでPHP5のインストール時のextensionsの 指定が不足していると思いますが、 どれかが分かりますでしょうか? 初歩的な質問ですが、宜しくお願い致します。

    • 締切済み
    • PHP
  • undefined symbol: ap_php_snprintf

    php apcをインストールしましたが、次のエラーがLOGに出力されて APCが起動しません。 PHP Warning: Unknown(): Unable to load dynamic library '/usr/lib/php4/apc.so' - /usr/lib/php4/apc.so: undefined symbol: ap_php_snprintf in Unknown on line 0 環境は OS: redhatES4 apache Apache/2.0.52 (Red Hat) php PHP Version 4.3.9 apc APC-3.0.14 解決策をご教示いただきたく、お願いします

    • 締切済み
    • PHP
  • phpエラーメッセージ

     「独習PHP」という入門書を購入し、ApacheとPHPの設定変更を記載道りに行ったのですが、次のようなエラーメッセージが表示されました。 php Start up: Unable to load dynamic liblary 'c:/php/ext\php_sqLite.dll-指定されたモジュールが見つかりません- php_sqLite.dllというファイルはc:\php\extに存在しているのは確認できたのですが、中身は文字化けで分かりません。 パソコン Windows XP(pro) Apache 2.0.55-win32-x86-no_ssl.msi PHP 5.1.1-win32.zip 尚、Apacheの接続は正常に(あなたの予想に反して・・・)表示されます。  このエラーメッセージの原因と解決方法をお教えください。

    • 締切済み
    • PHP
  • PHP5の拡張モジュールの関数を有効化するとエラーがでます。

    こんにちは。 いつもお世話になっております・・・。 PHP5+Apach2+MySQL4.0 Win環境で、インストールをしていたのですが・・。 <?php phpinfo(); ?>を、Apacheのドキュメントフォルダに 入れた所、ちゃんと表示されたので、インストール 自体は行えているのかな、と思うのです。 が、C:\Windows\php.ini の中に extension = php_mysqli.dll を足して Apacheを再起動させると Warning: PHP Start up:Unable to load dynamic library. c:/php/ext\php-mysqli.dll というエラーが2回繰り返し表示されてしまうのです。 php_mysqli.dllファイルは、c:/php/extフォルダに あったのを、システムフォルダ(C:\windows\system32)にもコピーしてあります。 なぜこのようなエラーが出てしまうのでしょうか・・・。 どうかご指導よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • Oracleがインストールできない

    Oracle Database Client(lib64版)をlinux環境(CentOS5.8)へインストールしていますが、 上手く出来ません。今までインストール作業をして、何度もエラーが出ましたが何とか エラーは解消する事が出来たのですが何故かインストールができません。(と思っています) インストールできていたのであれば、 rpm -aq|grep oracle と打てば何かしらのレスが返ってくるものだと思っているのですが。。。 当然、phpコマンドで php -v と打つと PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/oci8.so' - libclntsh.so.11.1: cannot open shared object file: No such file or directory in Unknown on line と出ます。(oracleクライアントがインストールされていないので当たり前ですが。。。) どなたかこの状態での打開方法、参考になる情報等ございましたらご教示の程を お願いします。 また、認識違いのご指摘でも結構です。

  • GDライブラリが使えない・・・

    当方fedora8にてApache2とphp4.4.9にてwebサーバーを構築しております。 Apacheはyumにてphpは4をインストールしたい加減からソースからコンパイルしてインストールしました。 configure時に下記のようにしてインストールしております。 './configure' '--prefix=/usr/local/php-4.4.9' '--enable-mbstring' '--with-apxs2=/usr/sbin/apxs' '--with-pgsql=/usr/local/pgsql' '--with-dg' '--with-zlib' '--with-jpeg-dir' phpinfo()を見ても上記のように設定されております。 しかし、phpinfoにgd関係の表示がされないのですがなぜでしょうか? phpのエラーログにはこうありました。 Warning: Unknown(): Unable to load dynamic library './php_gd2.dll' - ./php_gd2.dll: cannot open shared object file: No such file or directory in Unknown on line 0 php.iniのgd2のコメントアウトは消してあります。 必要なライブラリ関係はyumにてすべてインストール完了しております。 どなたか教えてください。 ではよろしくお願いいたします。