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

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

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
  • 閲覧数342
  • ありがとう数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の部分をコメントアウトしたら文字化けも解消されました。 まだまだ勉強不足ですよね。 あきらめずに頑張っていきます。 ありがとうございました。

その他の回答 (1)

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

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

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

質問者からのお礼

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

関連する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
  • 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において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が動作しません

    困っております。。 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から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
  • PHPspreadsheetのインストール

    Composerをインストールした後、コマンドプロンプトから以下のようにしてPHPspreadsheetをインストールしようとしましたが、エラーメッセージが出てきてインストールに失敗しました。 C:\Users\Shiro>composer require phpoffice/phpspreadsheet PHP Warning: PHP Startup: Unable to load dynamic library 'php_dg2.dll' (tried: C:\xampp\php\ext\php_dg2.dll (The specified module could not be found), C:\xampp\php\ext\php_php_dg2.dll.dll (The specified module could not be found)) in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library 'php_dg2.dll' (tried: C:\xampp\php\ext\php_dg2.dll (The specified module could not be found), C:\xampp\php\ext\php_php_dg2.dll.dll (The specified module could not be found)) in Unknown on line 0 Using version ^1.17 for phpoffice/phpspreadsheet ./composer.json has been created Running composer update phpoffice/phpspreadsheet Loading composer repositories with package information Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - phpoffice/phpspreadsheet[1.17.0, ..., 1.17.1] require ext-gd * -> it is missing from your system. Install or enable PHP's gd extension. - Root composer.json requires phpoffice/phpspreadsheet ^1.17 -> satisfiable by phpoffice/phpspreadsheet[1.17.0, 1.17.1]. To enable extensions, verify that they are enabled in your .ini files: - C:\xampp\php\php.ini You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode. Installation failed, deleting ./composer.json. C:\Users\Shiro> メッセージではphp_dg2.dll が無いと言っていますが、xampp/php/ext の中にちゃんと在りますし、php.inファイルの中でも extension=php_dg2.dll を追加してあります。 またメッセージの中に、php と dll が2度繰り返される、ありえないファイル名C:\xampp\php\ext\php_php_dg2.dll.dll というのが見えますが、これはどういうことなのでしょうか。 同じインストールを数時間前に会社でやって上手く行きましたが、今自分の家で同じようにやっても出来ません。私のPCにウイルスでも入ったのでしょうか。 どなたか解決方法が分かる方がいらっしゃいましたら、お知恵を貸していただけないでしょうか?お願いいたします。

    • ベストアンサー
    • 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