画像関連

【PHP・MySQL】データベースに画像ファイルを保存・表示する方法  第3回「画像を保存する」

ここまでの記事はこちら
 

今回はデータベースに画像ファイルを保存していきます。
データベースを作成していない方はこちらから確認してください。

 


 

動画

【PHP・MySQL】画像を保存・表示する方法 – #4 画像をデータベースに保存する

 
 

解説

データベースに接続

データベースへの接続は

  • 画像を登録する時
  • 画像を表示する時
  • 画像を削除する時

に必要になります。

何度も同じコードを書くのは面倒なので、functions.php というファイルにデータベース接続する関数を用意します。
 

functions.php という名前でファイルを作成して、以下のようにコードを書きます。

 

4行目

$param = 'mysql:dbname=my_image;host=localhost';

dbname はデータベース名、host はホスト名を設定します。

ホスト名は ローカル環境の場合は localhost にします。
レンタルサーバーなどを利用している場合は、お使いのサーバーに合わせて変更してください。
 

6行目

$pdo = new PDO($param, 'ユーザー名', 'パスワード');

ユーザー名とパスワードは、ご自身の MySQL の設定に合わせて変更してください。(phpMyAdmin 画面にログインする時のユーザ名とパスワードです。)

MAMP を使っていて、ユーザー名とパスワードの設定を行なっていない場合は root になっていると思います。
 

10・11行目

echo $e->getMessage();
exit();

データベースに接続できなかった場合は、エラーメッセージを表示させてプログラムを終了します。
 
 

画像を登録する

次に list.php を開いて、画像を登録していきましょう。

1~32行目を追加します。

 

データベースに接続する

2行目で先ほど作成した functions.php を読み込んで、4行目でデータベースに接続しています。

データベースに接続したら、最後に忘れずに unset で接続を終了します。(31行目)
 

画像を登録する

6行目の if 文は

  • form から画像を POST された場合は画像を保存
  • POST でない場合は登録した画像を取得

という分岐になっています。
 

画像をフォームから POST すると、以下のデータを取得できます。


 

このデータを images テーブルに追加していきます。

登録が出来たら、データベース接続を終了し list.php にリダイレクトして完了です。(26~28行目)
 
 

データベースを確認する

MySQL の管理画面を開いて、画像が登録されているか確認してみてください。


 
 

* 画像が登録できない場合
コードを正しく書いているのに画像が登録できない場合は、以下の記事を参考に php.ini の設定を確認してください。

【PHP・MySQL】データベースに画像が登録できない?upload_max_filesize と post_max_size の変更方法MySQL データベースに画像などのファイルが登録できないときは、upload_max_filesize と post_max_size...

 
 

次に行うこと

次回はデータベースに登録した画像を表示していきます。
表示を確認するために、2~3枚の画像を登録しておいてください🙂

第4回「画像を表示する」に進む

 
 

ABOUT ME
Sara
Sara
「わかりやすく・シンプル」をモットーに、携帯アプリ・ウェブアプリの作り方を紹介します。 独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています🙂
独学は難しそうと感じたら

 
独学でプログラミングを勉強するのは難しそう、効率的にプログラミングを学びたいという方はオンラインスクールがオススメです。

オンラインスクールを選ぶときのポイント

  • 無料体験があること
  • 個別サポートがあること

自分にあったスタイルを見つけるために、無料体験のご利用をオススメします。(無料体験後に自分には合わないなと感じたらハッキリ断ってしまって問題ありません。)
 
個別サポートもプログラミング学習に挫折しないために重要なポイントです。エラーや困った時にすぐに個別対応をしてくれるスクールを利用して下さい。

ここでは3つのオンラインスクールを紹介します。
全て無料体験がありますので、ぜひ自分に合ったスクールを見つけてみて下さい🙂
 

1. TechAcademy(テックアカデミー)

オンライン完結で勉強できるスクールで、コースがとても充実しています。チャットで質問すればすぐに回答を得られるのが一番のおすすめポイントです。
オリジナルのサービスやアプリの開発もサポートしてくれるので、開発したいものが決まっている人にもオススメです。

無料体験はこちら

2. CodeCamp(コードキャンプ)

一対一で受講できる個別指導のプログラミングスクールです。
Webデザイン・Webサービス開発・アプリ開発などを幅広く学習することができます。
マンツーマンなので自分のペースで学習できて、質問もその都度できるのがメリットです。

無料体験レッスンはこちら

3. Treehouse

英語でも良い、英語とプログラミングを同時に勉強したいという方は Treehouse がオススメです。月25ドルで始めることができて、たくさんのプログラミング言語を学ぶことができます。
個別サポートはありませんが、掲示板が充実しています。ほとんどの場合、質問してから30分程度で回答を得ることができます。

7日間の無料体験はこちら

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です