• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPの初学者とmySQL)

初学者の独学PHPとMySQLについての質問

このQ&Aのポイント
  • 2週間ほど前から独学でPHPを勉強していますが、MySQLの項目が出てくるたびに勉強が止まってしまいます。PHPを一定のレベルまで勉強してからMySQLを始めるべきか、それとも初心者でもMySQLを並行して学ぶべきか迷っています。
  • また、MySQLの初心者入門サイトを見ると、コマンドプロンプトでの操作について解説されていますが、XAMPPでインストールされたMySQLはエクセルのような画面での操作になっており、どちらが効率的な学習方法なのか不安です。
  • 初学者向けのMySQL学習サイトのご紹介があれば、お願いします。

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

  • ベストアンサー
noname#244856
noname#244856
回答No.4

>> そういうレベルでも先にMySQLの勉強を始めたほうが良いのでしょうか? 個人的には…「NO」ですかね。私がデータベースを触ったのはだいぶ慣れてきてからですね。最初はファイルにデータを保存してでいろいろやってました。 テキスト形式で行ごとにデータを保存から始める(fgets/fwrite関数など) http://php.net/manual/ja/function.fgets.php http://php.net/manual/ja/function.fwrite.php ↓ CSV形式というもっと扱いやすいものがあるのを知って移行(fgetcsv/fputcsv関数など) http://php.net/manual/ja/function.fgetcsv.php http://php.net/manual/ja/function.fputcsv.php ↓ XML形式の方がいいんじゃないかと思って移行(SimpleXML関数・クラス群) http://php.net/manual/ja/book.simplexml.php ↓ シリアル形式という一番扱いやすいものに移行(serialize/unserialize関数) http://php.net/manual/ja/function.serialize.php http://php.net/manual/ja/function.unserialize.php ↓ SQLiteデータベースに移行(PDOクラス) ↓ MySQLデータベースに移行(PDOクラス) という流れでしたね…まだPHPのことが全然わかってないならファイル操作あたりから慣れておいた方がいいと思います。排他制御についても勉強できるいい機会ですので。 Wikipedia - 排他制御 http://ja.wikipedia.org/wiki/%E6%8E%92%E4%BB%96%E5%88%B6%E5%BE%A1 PHPではflock関数を用いることで、簡単にファイルポインタに対して排他制御を実装することが出来ます。 PHP Manual - flock http://php.net/manual/ja/function.flock.php 【ロックの種類】 ・LOCK_SH(共有ロック) 読み取り専用にします。他のプロセスの読み取りは許しますが、書き込みは許しません。自分が読み取りだけを行う場合はこれを使うべきです。 ・LOCK_EX(排他ロック) 読み書きを全て自プロセスだけで独占します。書き込みを行う場合はこれを使うべきです。 ・LOCK_UN(ロック解除) 操作が終わった後はロック解除を行います。 ・LOCK_NB ノンブロッキングモードにします。具体的には、操作可能になるまで待機せず、1回チェックして無理だったらflock関数実行失敗としてすぐ処理に復帰します。他のフラグと「|」演算子で組み合わせて使います。特性上アドバイザリロックである必要があるので、Windowsでは使用できません。 【OS別の違い】 ・Windows 「強制ロック」を行います。これを行っている間は他のプロセスからの許可されていない操作を絶対に許しません。例えば自プロセスが「LOCK_SH」でロックしている間、他のプロセスがファイルをオープンしてきてflock関数のチェック無しにいきなり書き込みを行おうとしても、こちらの操作が終わるまでそこで待機させ続けます。 ・その他(Linuxなど) 「アドバイザリロック」を行います。強制ロックと違って、flock関数によるチェック無しにいきなり書き込みを行おうとしても操作出来てしまいます。全てのプロセスがflock関数によるチェックを行い、それぞれで「今この操作が許されているのかどうか」を確認しなければロックの意味がありません。強制ロックでは「強制」の字の通り横暴な操作を防ぐことが出来ましたが、アドバイザリロックではプログラマが責任を持ってちゃんと実装する必要があります。 なお、データベースではこういった排他処理が全て自動化されていますので、プログラマが実装する必要がありません。しかし非常に大切な概念なので、最初はファイルベースでやっていろいろ学んでほしいな…とは思いますが… >> XAMPPと一緒にインストールされたMySQLを見るとコマンドプロンプトでの操作ではなくエクセルのような画面での操作のようになっています。 「phpMyAdmin」のことですね。MySQL自体の機能ではなく、MySQLを扱いやすいようにPHPで作られたインターフェースがこれです。バージョンの違いではありません。 >> 今更コマンドプロンプト操作での勉強は効率がよいのかなと不安になってしまいます。 その人の好みによりますね。私は生粋のWindowsユーザーでGUI操作大好きですが、Linuxが好きな人からすればコマンドライン操作の方が使い勝手がよく思うでしょう。 >> データベースの知識のない初学者が今からMySQLを勉強するにあたってお勧めのサイトがあればご紹介ください。 正確な情報を求めるなら公式マニュアルが一番です。 MySQL 5.1 リファレンスマニュアル http://dev.mysql.com/doc/refman/5.1/ja/ これが読みにくく感じるならば、噛み砕いた説明をしてくれる入門者向けのサイトが手助けになるでしょう。 DBOnline - MySQLの使い方 http://www.dbonline.jp/mysql/ そして実際にPHPから扱うときは最初述べたとおり「PDOクラス」を使います。 PHPManual - PHP Data Object http://php.net/manual/ja/book.pdo.php 以下は私の記事になりますが、一度は読んでいただければ幸いです。 Qiita - PHPでデータベースに接続するときのまとめ http://qiita.com/mpyw/items/b00b72c5c95aac573b71 Qiita - ファイルオープンモードに関するマニュアルの記述は間違っている http://qiita.com/mpyw/items/3adcec3c66e515895b08

okdayook
質問者

お礼

PHPをある程度勉強してものになってからデータベースなどを 勉強したほうが良いというアドバイスありがとうございます。 ただPHPの勉強もすぐに壁にぶつかり 次にどうしてよいのか分からない状況なので 強引にMYSQLの勉強を始めてみました。 データベースの知識がなく 多くのmySQL初学者サイトで説明されている コマンドプロンプトとXamppの phpMyAdminの仕様が異なり 途方にくれていたのですが 少し理解できるきっかけになるサイトも見つけることができました。 http://www.php-labo.net/tutorial/mysql/ phpMyAdminは新しいバージョンのmySQLではないのですね。 とりあえず新たな壁にぶつかるまで mySQLの勉強を進めていき また先に進めなくなったら PHPの勉強にに戻ろうと思います。 貴重な情報ありがとうございました。

その他の回答 (4)

回答No.5

>お近くのブックオフさんみたいな古本屋さんで、 > 「PHP+MySOL」のCD付入門本を入手して、通しで読むほうが良いと思います。 それこそ >バージョン差異でつまづくこともあるでしょう。 だからやめるべき。 今更古いバージョンのを読んでも意味がない。 PHPはバージョン間でだいぶ作法が違う。 (互換性のために古い作法でも記述できるか) >mySQLの数年前と最新版のバージョンの違いだと思うのですが、 >仕様ががなり違うのか >今更コマンドプロンプト操作での勉強は効率がよいのかなと >不安になってしまいます。 SQLを書けなくてPHP側はどうする気? >もちろんコマンドプロンプトでDB操作するからプロい、GUIだとアマいという事ではありません。 >どちらにもメリットがあるからどちらの方法も提供されているというだけです。 普通に仕事でOracleとかMySQLなど使うけどまぁデータの中身を見るときにはGUIツール使っちゃうからね。 それでも内部結合とか外部結合する場合はSQLを直接書いてデータ確認したりする。 GUIツールは簡単な検索にはよく利用するけど複雑な条件などになるとできなかったり設定がめんどくさくなるからSQLを直接書いた方が楽。

okdayook
質問者

お礼

本屋さんではインターネットの初学者と同じような内容の物ばかりで結局これという本はありませんでした。 PHPの本も2冊買ってみているのですが 途中からいきなり難しくなり 結局はそこで行き詰ってしまいます。 GUIツールという言葉を教えていただいたので また調べて勉強してみようと思います。 ありがとうございました。

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.3

> それともある程度のレベルまでPHPを勉強して > シンプルでもある程度のPHPプログラムが自分で書けるようになって > それからmySQLの勉強を始めたほうが良いのでしょうか? > ちなみにデータベース自体の知識は全くありません。 こっちが良いと思います。あくまで個人的な意見です。 > mySQLの数年前と最新版のバージョンの違いだと思うのですが、 > 仕様ががなり違うのか > 今更コマンドプロンプト操作での勉強は効率がよいのかなと > 不安になってしまいます。 mySQLへのアクセス方法が複数あると考えれば良いでしょう。 これは福岡から東京にいくときに徒歩でトホホと行くのと、新幹線でビュワーンと行くのと、飛行機でドヒューンと行くのの違いです。 徒歩は大変だけどお金がかからない・ふらっと寄り道できるというメリットがありますね。 飛行機最高、徒歩最悪、という訳ではありません。 もちろんコマンドプロンプトでDB操作するからプロい、GUIだとアマいという事ではありません。 どちらにもメリットがあるからどちらの方法も提供されているというだけです。 mySQLの前にまずDBMSとは何ぞやというのを呼び出しもとのPHPと絡めて概念をつかむのが良いでしょう。 つまり、DBMSとはそれ単体ではデータが整然(イメージとしてはExcelの表みたいなん)と並んでいるだけであり、 そのデータを探す、入れる、消すという操作を行う別の何かが無いと何の意味も持たないものであり、 別の何かというのはあなたが作ったPHPのプログラムである、という点から、 PHPからDBを突っつくときにどうするか(SELECT、INSERT、UPDATE、DELETE)の基本を押さえるべきでしょう。 その上で、mySQLというDBMSはそれをどう実現しているかというのを調べていくのが良いと思います。 後は、公式の情報をじっくり読み込むのが良いでしょう。 http://www.php.net/manual/ja/ http://dev.mysql.com/doc/refman/5.1/ja/index.html 最初はひょっとしたら全く意味が分からないかも知れません。 しかし、最初から最後まで一通り読んだ後でもう一度PHPでプログラムを組んでみると 今まで漠然と組んでいたプログラムの中身が理路整然と理解できるようになるでしょう。 mySQLは5.5以上用の日本語マニュアルが無いので5.1用のものを紹介しました。

okdayook
質問者

お礼

PHPやMYSQLなどの勉強はすぐに何かの結果や成長が 出るのではないため先の見えない漠然とした試練のような 作業になっているのが現状です。 プログラムの勉強をしたことがないので 難しい専門用語や知らない単語などがでてくると そこで挫折してしまいそうになりますが 頑張ろうと思います。 アドバイスありがとうございました。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

サイトで情報収集はバージョン差異でつまづくこともあるでしょう。 お近くのブックオフさんみたいな古本屋さんで、 「PHP+MySOL」のCD付入門本を入手して、通しで読むほうが良いと思います。

okdayook
質問者

お礼

本屋さんで見たMYSQLの本は殆どインターネットで検索できるような以前のバージョンのものばかりで これといった本は見つけることができませんでした。 とにかくアドバイスありがとうございました。

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

覚えること、理解すべきことは山ほどあります。 なので、自分ができそうなところから順番に時間をかけて学んでゆくしかないでしょう。

okdayook
質問者

お礼

頑張ってもすぐに結果が返ってこない作業なので 本当に長い道のりになると思います。 途中で投げ出さないよう頑張ろうと決意しました。 ありがとうございます。