株式会社インソースデジタルアカデミー

PHP入門~ゼロから学ぶWebアプリ開発の全体像とデータベース連携の基本

「サーバサイドの開発に興味はあるけれど、プログラミング経験がなくて不安...」そんな悩みを抱えていませんか。PHPはWebアプリケーションを支える代表的なサーバサイド言語で、初心者にも比較的学びやすい特徴があります。

しかし、初めて触れる方にとっては、環境構築やコードの書き方、データベースとの連携など、何から手を付けていいのか分からないことも多いでしょう。

この記事では、プログラミング未経験の方がPHPを学び、Webアプリケーションを作れるようになるための流れをを丁寧に解説します。コード例や章末アクションを追加してイメージできるようにしてあります。

1.PHPで何が作れる?初心者向けWebアプリ事例

PHPとは、Hypertext Preprocessorの略で、主にWebサーバ上で動作するスクリプト言語です。HTMLに組み込んで使用でき、フォームの送信内容を処理したり、データベースから情報を取得して表示したりすることができます。クライアント側で動作するJavaScriptとは異なり、PHPはサーバ側で処理を行い、結果だけをブラウザに送信する仕組みです。

初心者でも作れるWebアプリの具体例

  • 簡単な計算アプリ(数値の加減算)
  • アンケートフォーム
  • TODOリストアプリ
  • 掲示板(CRUD操作)

章末アクション
まずは「Hello, World!」をPHPで表示してみましょう。

<?php
echo "Hello, World!";
?>

echoは続く引数を文字列としてブラウザの画面に表示します。

2.PHP環境構築~XAMPPとMAMPで簡単スタート

PHPを学ぶには、開発環境を整える必要があります。PHPはサーバで動かす言語です。ローカルPC内でWebサーバで動くのと近い状態を再現して学習を進めることができます。おすすめはXAMPPやMAMPといった統合環境です。どちらもネットで提供されていて、学習するには無料版で十分です。これらはApache(Webサーバ)、MySQL(データベース)、PHPがセットになっており、複雑な設定なしに学習を始められます。

  • VS Codeなどのエディタを準備する
  • XAMPPなら「Start Apache」「Start MySQL」を押すだけで環境が動く
  • エラーが出たらポート競合や設定ミスが多いので、まずブラウザでhttp://localhostが表示されるか確認

章末アクション

  • XAMPP/MAMPをインストールして起動し、ブラウザで「http://localhost」を開いてみよう。
  • PHPファイルを作り、Hello, World!を表示して環境を確認。

3.PHP文法を学ぶ~サンプルコードで体感する基礎

PHPの基本文法を理解することは、アプリ作成への第一歩です。

変数とデータ型

<?php
$name = "山田";
$age = 25;
echo "名前は $name、年齢は $age 歳です。";
?>

「名前は山田、年齢は25歳です。」と表示されます。

変数宣言や初期化なしに代入可能です。シングルクォーテーションかダブルクォーテーションで囲むと文字列として扱われます。数値はクォーテーションで囲わずに代入します。echoの引数は、ダブルクォーテーションションで囲んでいると、クォーテーション内の変数は文字列として展開されて表示されます。シングルクォーテーションで囲むと変数の中身は展開されず、変数の名前がそのまま表示されます。

条件分岐

<?php
$score = 80;
if ($score >= 60) {
    echo "合格です";
} else {
    echo "不合格です";
}
?>

「合格です」が表示されます。

変数scoreに80を代入し、ifで評価しています。60以上ならば「合格です」が表示されます。60よりも小さい値がscoreに代入されていた場合は「不合格です」が表示されます。else ifを使ってさらに分岐条件を追加できます。

ループ

<?php
for ($i = 1; $i <= 5; $i++) {
    echo $i . "<br>";
}
?>

「1」「2」「3」「4」「5」が表示されます。

変数iに1を代入してスタートし、{}の処理の終わりに(i++の部分の指示で)iに1を加えます。2週目からは、iが5以下である間、{}内の処理(iを展開して表示、brはHTMLのタグで改行する)を繰り返します。

章末アクション

  • 上記コードを使って「入力した数値を二倍にする簡単計算アプリ」を作ってみよう。

4.PHPで安全にフォーム入力を扱う~初心者向け具体例

HTMLフォームからの入力を受け取る方法です。コードの上の部分はPHPではなくてHTMLで書いた「フォーム」です。

フォームは名前とコメントを入力できる入力欄が表示されて「送信」と書かれたボタンが表示されている状態です。名前とコメントを入力して送信ボタンをクリックされたあと、下のブロックのPHP部分を表示する想定です。

<form method="post" action="submit.php">
  名前: <input type="text" name="name"><br>
  コメント: <input type="text" name="comment"><br>
  <input type="submit" value="送信">
</form>
<?php
$name = htmlspecialchars($_POST['name'], ENT_QUOTES);
$comment = htmlspecialchars($_POST['comment'], ENT_QUOTES);

echo "名前: $name<br>";
echo "コメント: $comment";
?>

htmlspecialchars()はHTMLの特殊文字を、Webブラウザが表示してもHTMLとして解釈されない安全な形に変換する関数です。XSS(クロスサイトスクリプティング)攻撃を防ぐための処理を書くのに重要な関数です。上記の例では、ユーザーが入力した文字を、エスケープ処理済みの文字列として扱えるように変換します。

「名前:[フォームの名前で入力された文字]」
「コメント:[フォームのコメントで入力された文字]」という状態で表示されます。

章末アクション

  • 上記フォームを作り、名前とコメントを入力してブラウザに表示してみよう。

5.PHP×MySQLで作る初心者掲示板~データ保存とCRUDを体験

データベース接続

<?php
$dsn = 'mysql:dbname=php_db;host=localhost';
$user = 'root';
$password = '';

try {
    $dbh = new PDO($dsn, $user, $password);
    echo "接続成功";
} catch (PDOException $e) {
    echo '接続失敗: ' . $e->getMessage();
}
?>

データベースに接続が成功した時は「接続成功」と画面に表示されます。

データベースに接続するためのサンプルコードです。あくまでもテスト環境で、説明のために直接ユーザ名「root」とパスワード無しで書いてありますが、実際に作る際には取り扱いに気を付けてください。

CRUD操作例

CRUD(クラッド)は、データベースやWebアプリケーションがデータを扱う上で必要となる、基本的な4つの操作 の頭文字をとった用語です。Create(作成)、Read(読み取り)、Update(更新)、Delete(削除)の頭文字です。そのうち、作成(登録)と読み取り(取得)をサンプルコードとして示します。データベースにデータを入れたり足したりするためには、SQL文を書く必要があります。SELECT文やINSERT文はSQL文です。PHPと並行して勉強する必要があります。

  • 登録(INSERT)
$stmt = $dbh->prepare("INSERT INTO posts (name, comment) VALUES (?, ?)");
$stmt->execute([$name, $comment]);

プリペアドステートメントという仕組みを使って、データベースへ登録しています。「?」のところは、置き換えるための文字で、プレースホルダーと呼ばれます。一つ目はフォームの名前欄の値、二つ目はフォームのコメント欄の値が来るように作ってあるので、その順番で?の位置に値が入ります。このプリペアドステートメントを使う方法の最大の利点は、SQLインジェクション攻撃を防ぐことです。

$nameの中に、名前ではなく悪意のあるコードを書かれてしまったとしても、SQLの命令として実行されてしまわないようにするための仕組みです。実行されると、データベースの「posts」という名前のテーブルに新規に1つのデータが登録されます。

  • 取得(SELECT)
$stmt = $dbh->query("SELECT * FROM posts");
foreach ($stmt as $row) {
    echo $row['name'] . ": " . $row['comment'] . "<br>";
}

このサンプルだと、データベースの「posts」というテーブルから、全件のデータを取り出して、表示するという内容です。

章末アクション

  • 小さな掲示板アプリを作り、投稿がデータベースに保存されることを確認しよう。

今日から作ろう!PHPでゼロからWebアプリを動かす

PHPは未経験者でも始めやすく、Webアプリ開発の基礎を学べる言語です。小さな成功体験を積み重ね、環境構築からデータベース連携まで順序立てて学びましょう。

どんな風に作成して行くのかは、イメージしていただけたものと思います。開かれたインターネットの中で動くシステムを作る場合、セキュリティのこと、フォームを作るにあたってはHTMLを知る必要があり、更にデータベースを使うのでSQLを覚える必要があります。もちろん素敵なWebシステムを作るにはさらに、CSSやjavascript、PHPのフレームワーク等の知識も必要になります。沢山あるハードルのはじめの一歩として、PHP入門研修を受けてみるのはいかがでしょうか。

【新人IT研修】プログラミング基礎研修(PHP)(6日間)/PHP開発実習(6日間)

PHPプログラムの開発をこれから始めようとする方に、PHPプログラムの基本知識を身につけていただく研修です。

本研修は下記のセットでおすすめの研修でご紹介する「新人IT研修」コースの一部を抜粋して受講いただく形式となります。研修は新入社員向けのスケジュール・内容で進行いたしますため、部分受講をご希望の方は、お申し込み前に必ずお問い合わせください。

対象者

  • システムエンジニアに配属された新入社員・新社会人の方
  • PHPプログラムの開発をこれから始めようとする方

>公開講座の詳細はこちら

セットでおすすめの研修・サービス

【公開講座】新人IT研修~PHPコース|新入社員のIT教育・開発実習

SEとしての基本スキルとビジネスパーソンとしての基本スキルを学ぶ研修です。コンピュータやネットワークの仕組みなどITの基礎知識から、最終的にはPHP開発実習にてシステムを0から作り完成させるというプロセスまで、約1カ月の期間で学んでいただきます。

また、常にグループで活動するように研修が構成されており、新社会人の皆さまには、開発実習を通じてチームで成果を出す経験をしていただきます。

>公開講座の詳細はこちら

【公開講座】PHP基礎

PHPの基礎を体系的に学べるコースです。PHP 8対応です。

本コースは、PHPの新しい文法や機能を前提として、PHPプログラミングの基礎や特徴的な考え方をハンズオンと演習を通して体系的に学習していくコースです。 ただ表面的にPHPでサンプルアプリケーションを作成して終わりではなく、プログラミング言語としてのPHPを丁寧に説明していきます。株式会社カサレアル主催の研修です。

>公開講座の詳細はこちら

【Techtrain:6カ月プラン例】PHP入門~ゼロから学ぶWebアプリケーション開発

本プログラムは「TechTrain(テックトレイン)」のプログラミング未経験者・初心者の方向けの6カ月プラン例です。

Web開発の土台としてHTML/CSS/javascriptについて学びます。その後、Webアプリケーション開発フレームワークとしてLaravelとPHP言語を本格的に習得いただきます。

>通信教育プログラムの詳細はこちら

関連記事

関連研修シリーズ