『よくわかるPHPの教科書 【PHP7対応版】』サポートサイト
ソースコードのダウンロード
本書に掲載されているソースコードファイルです。下記からダウンロードしてください。
ソースコードのzipファイルをダウンロード
学習に使用するXAMPPとMAMPのバージョンについて
本書と同じように操作するには、XAMPP7.1.33 またはMAMP4.5をご利用ください。環境が異なると本書の内容を異なる結果になることがあります。
XAMPP:「XAMPP7.1.33」を使ってください。以下よりインストーラーがダウンロードできます。ダウンロードしたら、本書P.020の「2. セットアップする」の説明に沿って進めてください。
https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/7.1.33/xampp-windows-x64-7.1.33-1-VC14-installer.exe/download
MAMP:「MAMP 4.5」を使ってください。以下よりダウンロードできます。ダウンロードしたら、本書P.022の「2. セットアップする」の説明に沿って進めてください。
https://downloads.mamp.info/MAMP-PRO/releases/4.5/MAMP_MAMP_PRO_4.5.pkg
P.023の「3.起動する」で起動したら、メニューから「MAMP→Preference」を選び、「PHP」のタブで「7.1.12」を選んで[OK]をクリックします。その後、「サーバーを起動」をクリックして進めてください。
ご注意「Notice: という警告が表示された場合」
本書のプログラムを実行したとき、「Notice:」から始まるエラーメッセージが表示されることがあります。
これは、プログラムによりますが、利用しようとしている変数や配列が空である場合などに表示されます。
実際のプログラムを作るときには、この警告が表示されないように作るのが良いですが、プログラムが非常に複雑になってしまうため、学習環境では一時的に非表示にしてしまった方が良いでしょう。
具体的な手順は本書P.098に記載していますので、ご確認ください。
ご注意:MySQLで 「xxx doesn’t have a default value」とエラーが表示されたとき
MySQLで値を挿入する際、次のようなエラーが発生することがあります。
SQLSTATE[HY000]: General error: 1364 Field ‘xxxx’ doesn’t have a default value
これは、挿入しようとしているテーブルのあるフィールドについて、値が指定されていない場合に発生します。MySQL 5.6以前のバージョンであれば問題なかったのですが、5.6から設定が一部変更されました。対処法を以下のページで紹介しておりますのでご確認ください。
MySQLで “xxx doesn’t have a default value”とエラーが表示されたときの対処法
ご注意:P.192のSQLを実行し、「SELECT list is not in GROUP BY clause…」とエラーが表示されたとき
P.192のSQLを実行すると、次のようなエラーが発生することがあります。
#1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'mydb.m.name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
これは、MySQL5.7からGROUP BYの書き方が変更されたために起きるものです(MAMPで発生するエラーです)。 お手数ですが、以下の手順で設定を変更してからご利用ください。
1. エディタを起動し、以下の1行を書き込みます。
sql_mode=NO_ENGINE_SUBSTITUTION
2. ファイルを保存し、「アプリケーション→MAMP→conf」フォルダーに「my.cnf」というファイル名で保存します。
3. MAMPを再起動します
訂正情報
以下の誤りがありました。お詫びの上訂正します。
● P.034の「MEMO」
誤:
HTMLについての説明は、P.088をご覧ください。
正:
HTMLについての説明は、P.089をご覧ください。
● P.048の本文の段落4つ目
誤:
このようにすると、「$span」という変数に計算結果である「210」が代入されます。
正:
このようにすると、「$span」という変数に計算結果である「1350」が代入されます。
● P.060の「COLUMN」の囲み
誤:
< ?php endwhile(); ? >
正:
< ?php endwhile; ? >
誤:
< ?php endfor(); ? >
正:
< ?php endfor; ? >
● P.214の1つ目のプログラム2行目
誤:
<?php foreach ($memos as $memo): ?>
正:
<?php while ( $memo = $memos->fetch()): ?>
● P.228の1つめの囲みから2つめの囲みまで
誤:
ページ数 = メモの件数 ÷ 5 + 1(※ 小数は切り捨て)
小数の切り捨ては「floor」メソッド(Chapter 3-11参照)を使うので、次のようになります。
$max_page = floor($count['cnt'] / 5) + 1;
正:
ページ数 = メモの件数 ÷ 5(※ 小数を切り上げ)
小数の切り上げは「ceil」ファンクションを使うので、次のようになります。
$max_page = ceil($count['cnt'] / 5) ;
● P.228のindex.php
誤:
$max_page = floor($count['cnt'] / 5) +1;
正:
$max_page = ceil($count['cnt'] / 5);
● P.257のプログラムのファイル名
誤:
/dbconnect.php
正:
/join/check.php
● P.285のプログラムのファイル名
誤:/join/index.php
正:/index.php
補足情報
P.265の本文2行目について
・「CSSファイルは適宜ご用意ください。」とありますが、上記からダウンロードできるファイルの「chapter06 → post」にCSSファイルとしてstyle.cssが含まれておりますので、よろしければお使いください。