PHPとMySQLでのWebアプリ開発における問題

このQ&Aのポイント
  • PHPとMySQLを使用して社内サーバーにWebアプリをUPし、データベース管理を試みましたが、情報の反映ができません。
  • ぶっとびねっと(フリーレンタルサーバー)でも同様の問題が発生し、情報の反映もできませんでした。
  • PHP.iniの設定に関する初心者の私にとっては理解しづらい部分があり、社内サーバーでの設定方法について教えてください。
回答を見る
  • ベストアンサー

PHPとMySQLについて

社内サーバーにWebアプリをUPし、 全てデータベース管理にするため、MySQLを使用しました。 参考書を見ながら作成したため、構文に間違いはありません。 参考書は「 はじめての人のためのかんたんPHP + MySQL入門」です。 この参考書の第8章にあるWEBアプリを忠実に再現しました。 しかし、フォームに情報を入力し、登録を押しても情報が反映されません。 以上と同じように、ぶっとびねっと(フリーレンタルサーバー)でもUPし、phpMyAdminでDBを構築しましたが、 これも同じく登録情報が反映されませんでした。 無論、phpMyAdminから直接CREATEし、HPに情報を反映させるのは可能です。 その際、日本語が???となってしまいましたが、その他は正常です。 一番の問題は、なぜHPから情報を入力し、それがDBへ反映されないのかです。 .htpccessやPHP.iniの設定と何か関係があるのでしょうか? 社内サーバーに.htaccessファイルは無いそうです。 となると、php.iniだと思います。 私は初心者のため、イマイチPHP.iniが良く分かりません。 ローカルにApacheなどを落とした場合は、C:Windowsの中にPHP.iniの設定をいじればいいと思いますが、 社内サーバーの場合、サーバー上のどこかにあるPHP.iniファイルの設定を変える必要があるのでしょうか? 以上、ごちゃごちゃしてて申し訳ありませんが、 お助け下さい。

  • PHP
  • 回答数1
  • ありがとう数0

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

  • ベストアンサー
  • NARH
  • ベストアンサー率82% (88/107)
回答No.1

DBへの接続はDBの種別(今回は mysql)とホスト名、DB名、後は認証情報のIDとパスワードで表現できるので、mysqlのドライバが入っていれば php.ini は問題ないことが多いです。 たまに mysqli.default_socket のパスが違ってることがありますが。 ですから、接続できないのが原因であれば ・接続先や認証情報が間違っている。 ・MySQLで権限設定していない が考えられます。 次に接続は確認できている場合は ・クエリが間違えている ・データが間違えているかNULLになっている SQL実行時の問題が考えられます。 この問題なら、実行されるクエリを echo するなりして、画面もしくはログに一時的に出しちゃって、それを mysql コマンドか利用しているツールで実行してみると一目瞭然。 全ての権限( all privileges )を付与してるのであれば大丈夫だと思いますが、 insert 権限がないことも考えられるので、クエリを実行するときはサーバからmysqlコマンドで実行できると分かりやすいです。使っているAPIによってはクエリ実行時の戻り値やthrow される Exception で分かることもあります。 手っ取り早く、実行命令の戻り値を var_dump() しちゃうといいかも。 # ご利用なさっている本って、"はじめての人","かんたん","入門"って全力で内容薄いですって言ってるような感じを受けるのは僕の根性が曲がってるからなのかしらん

関連するQ&A

  • MySQL/PHP に関する質問

    私は、MySQLとPHPを使って、情報検索サイト (Webアプリケーション)をつくりたいのですが、 MySQLおよびPHPのコマンド入力画面を立ち 上げるには、どのようにすればよろしいので しょうか? 私は、MySQL/PHPについてはまったくの 初心者で、何をどのようにすればよいのか、 さっぱりわかりません。 具体的な手順を教えていただけたら幸いです。 ---------------------------------------- レンタルサーバーは、paperboy&co.の「チカ ッパ!」を使用しています。 「チカッパ!」には、MySQL/PHP/phpMyAdmin がインストールされていて、 データベース名やID、パスワード等を、「チカ ッパ!」の管理画面で設定すれば、 MySQL/PHP/phpMyAdmin が使えるように なるのだと思いますが、 ID等を設定した後、次に具体的にどのように すれば、実際に使えるようになる(=コマンド 入力ができるようになる)のかが、わからない のです。 「チカッパ!」では、MySQL/PHP/phpMyAdmin の使い方のサポートはしないそうです。 以上、よろしくお願い致します。

  • PHPとMySQLを利用し、文字化けの問題。

    ApacheとPHPとMySQLを使って、ウェブサイトを作成する。 参考書は導入効果バツグン!PHP5.0+MySQL5.0で構築する最速Webシステムです。 この本によって、色々な設定も変更した。(php.iniの設定とhttpd.confの設定とMySQLのファイルでのmy.ini、三つとも更改した。) MySQLにはPHPMyAdminツールを利用して、データをインポートした。 現在PHPのプログラムは作成していたげと、ブラウザで示した時は文字化けという問題があった。PHPのプログラムでcharset=shift_jisも設定した。ちなみにプログラムの中で日本語を使っているので、ブラウザでも正しく示した。PHPMyAdminの中に示したいデータベースとテーブルには全部のエンコードはsjisで設定した 結局どこか間違ったところがあるので、全くわからなかった。 情報をいただければと思います。では、よろしくお願いいたします。

    • 締切済み
    • PHP
  • 超初心者です。PHPからMySQLに接続できません

    コマンドプロンプトからはログインできるのに、PHPMyAdminからはMySQLにログインできません 超初心者です WordPressを学習しようとサイトを参考に 以下の環境で、PHPとMySQLをインストール&設定しました OS :WindowsXP SP2 PHP :Ver 5.3.8 MySQL:Ver 5.5 Apache:Ver 2.2 php.ini にて extension=php_mysql.dll extension=php_mysqli.dll を、追加など コマンド・プロンプトからの >mysql -u root -pパスワード は、正常にログインできましたが PHPMyAdminをインストールし ブラウザからの localhost/phpmyadmin/index.php からは、以下のようなエラーとなり、ログインできません #2002 MySQL サーバにログインできません ちなみに、ブラウザから PHPInfo.php は正常に表示されております 恐れ入りますが、どうか皆さまの知恵と御力添えを 宜しくお願い致します

  • MySQL+PHPのエラーについて

    こんにちわ。未熟者@MySQLです。 今まで自宅サーバー(Fedra3)で動かしていたDBをホスティングのサーバーに移行したらエラーがでます。 内容は Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/xxx/www/new.php on line 81 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/xxx/www/new.php on line 82 ホスティングサーバーのOSはFreeBSD、もちろんMySQLもPHPも対応しています。かわったところはというと、ホスティングではphpMyAdminを用いてテーブルを作成した点でしょうか。エラー解決以前にこのエラーの意味が分かりません。ググってもどこかのサイトのエラーページばっかりですし・・・PHPとApache、MySQL共のバージョンが同じなのですが、どこか設定がおかしいのでしょうか?一応php.iniの設定はいじれるようです。アドバイスの程よろしくお願いいたします。

  • PHP4からPHP5にしたときのDB文字化けについて

    よろしくお願い致します。 すでに、PHP4で作っていたサイトで、DBにもいろいろと登録していたのですが、PHP5にしたい事情が出てしまい、PHP5にしました。 すると、すでに登録されていた、DBの内容が文字化けしてしまいました。 PHP4(UTF8)+MySQL5(UTF8) → PHP5(UTF8)+MySQL5(UTF8) 情報足りませんでしたら申し訳ないです、申し付けて下さい。 phpMyAdminから見たときは、すでに入っていたDBの内容は文字化けはしていないのですが… 次にPHP5で新しく登録した場合は、サイトでの表示は文字化けしないのですが、次はphpMyAdminで見ると文字化けしていました。 php.iniの設定も同じにしてます、Apacheのconf設定なども見たのですが、文字化けは解消しませんでした。 よろしくお願い致します。

    • 締切済み
    • PHP
  • mysql-phpでの文字化け

    自分のパソコンでは文字化けせず、正しく表示されているのですが、 niftyのデータサービスを使ってphpで表示すると文字化けします。 my.iniとmy.cnfの問題と思いniftyサーバーにftpで接続し探したがファイルが見つかりません。 mysqlとphpはutf8で設定しています。 niftyサーバーのmysqlは5、phpMyAdminは2,11,9です。

    • ベストアンサー
    • MySQL
  • phpからmysqlへ接続できなくて困っております

    phpからmysqlへ接続したいのですが、データベースへ接続できません。 まず、使用環境は以下の通りです。 ------------------------------ OS:RedHatLinuxES4 MYSQL:mysql-4.1.7-4.RHEL4.1 PHP:php-4.3.9-3.1 MysqlとPHPはRedHatサイトのパッケージを使用してrpmでインストール しております。 MySQLのデータディレクトリをデフォルトの/var/lib/mysqlから /home/mysqlへ変更してます。 それに伴い、/etc/my.cnfのソケットとデータディレクトリの箇所 を変更しております。 <デフォルト設定> socket=/var/lib/mysql/mysql.sock datadir = /var/lib/mysql <変更後> socket=/home/mysql/mysql.sock datadir = /home/mysql ------------------------------ 色々調べていて原因は分かりました。 mysqlで指定しているソケットの場所と、PHPで指定している ソケットの場所が違うため、接続できないようです。 phpinfoにて情報を取得したところ、mysqlの箇所でソケットを指定 がデフォルト値の/var/lib/mysql/mysql.sockとなっておりました。 そこで、php.iniファイルのMYSQLの箇所を以下のように修正しました。 <デフォルト設定> mysql.default_socket = <変更後> mysql.default_socket = /home/mysql/mysql.sock 上記変更後、apacheを再起動し、再度phpinfoにて情報を取得した ところ、以下のようになりました。 MySQL Support項目、 MYSQL_SOCKET → /var/lib/mysql/mysql.sock #変更されず、反映されていないように見受けられるます Directive項目、 mysql.default_socket → /home/mysql/mysql.sock #php.ini修正前は確か、no valueであったと思います。 #従いまして、php.iniの内容が反映されている? --- その後、mysqlへ接続する、mysql_connect関数を利用して 接続テストを行った結果、エラーとなり接続できませんでした。 <エラーメッセージ> 接続できませんでした: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) --- おそらく、上記のphpinfo情報取得した時の、MYSQL_SOCKETが反映 されていないからだと思っておりますが、php.iniファイルの mysql.default_socketを修正すれば反映されると思ったにも関わらず 反映されないので、次にどこを修正すれば良いのか分かりません。 ご教授頂けませんでしょうか。宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPの設定でMySQLを有効にするには?

    現在Windowsを使ってPHPなどの勉強をしています PHPのプログラム上からデータベース(MySQL)に接続したいので、MySQLを有効にするためにphp.iniの「;extension=php_mysql.dll」から「;」を取るとMySQLが有効になると参考書には書いてあるのですが、有効になりません。 何か設定が足りないのでしょうか? 教えてください!!

    • 締切済み
    • PHP
  • MySQL、php.ini の設定

    PHP、勉強中の者です。 参考書を見て、MySQLをインストールしました。(インストールはOKのようです。) php.iniの設定で「;extension=php_mysql.dll」を「extension=php_mysql.dll」に変更しましたが、<?php phpindo() ?>でMySQLの確認ができません。 他にも設定しなければいけないところがあるのでしょうか? なお、良く覚えていませんが、.iniのファイルは簡易版?をコピーしてます。(php.ini-distでしたっけ?)

    • ベストアンサー
    • PHP
  • ソケットエラーについて(PHP+MYSQL)

    過去ログもたくさんでていたのですが、解決しないので質問します。 PHPとMYSQLを連動させて使用したいのですが、わからないなりにサーバーの設定しています。 Fedora Core3 PHP Version : 4.3.11 Apache Version : 2.0.53 MYSQL 5.0.24a で設定しています。 PHP単体では動いています。 MYSQLもターミナル上では動いています。 PHPからの動かすと DB Error: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13) と出たので、 mysqldをもう一度起動してみたり php.iniを /tmp/mysql.sock に変更してApacheを再起動したり my.cnfも同じ値にしているのですが (mysql.socは/tmp/にある) エラーが DB Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (13) に切り替わっただけでした。 mysqldが動いていないのかなーとも思うんですが どこから手をつけていいのかわからなくなっています。 ひとつ気になるのが、PHPのテストファイルで取得したinfoの MYSQLの 項目で MYSQL_SOCKET /var/lib/mysql/mysql.sock と出ていました。 これって関係あるんでしょうか。 別の設定があるのでしょうか・・・ それともやっぱりmysqldをあたってみたらいいのか。 みなさんのご意見をお聞かせいただければ幸いです。 あと参考になるような本があれば教えてください。 よろしくお願いします。

専門家に質問してみよう