WebEngine

だらだらと綴る技術系メモ

MySQL

Docker ComposeでLAMP環境構築

この記事は今までのDocker系記事のゴール地点になる位置づけになります。(まだまだ怪しいところたくさんあるけれど...) Dockerは初めて、という方は以下の記事を順に追う形で読まれていくとぼんやりとイメージが湧いてくるんじゃないかと思います。 Docker…

内部結合と外部結合[SQL]

前提 環境:MySQLを使います(mysql Ver 14.14 Distrib 5.7.18) 結合とは 結合とは、複数のテーブルを特定のキーで結びつけて処理することです。 DBを使ったシステムやアプリケーションの多くは、1つのテーブルだけで実装されていることは少なく、 何枚かの…

PDOのfetch系メソッド

前提 PHP 5.6 mysql Ver 14.14 Distrib 5.7.18 Google Chromeでしかテストしていません PDOのfetch系メソッドをまとめただけです テストデータを用意 ※ fetch系メソッドだけ調べたい方は下の方まで飛ばしてください ターミナルでMySQLを起動。それから以下の…

パスワードをデータベースに保存するときは、一緒に塩を入れよう

セキュアに保存する -> 漏れた場合を想定する データベース(以下DB)にパスワードを保存するとき、そのまま (平文で)保存してはいけません。データが漏れた場合に、パスワードが 見た瞬間わかってしまうからです。 パスワードを保存する場合、暗号化してからD…

Vagrant + Ubuntu14.04 でLAMP環境構築

追記(2017.1.7) 久々に見直したところ、step.5の工程が必要ないことに気づきました。必要ない方は飛ばしてもらって結構です。 Step.0 前提条件 VirtualBoxインストール済み Vagrantインストール済み WindowsならばPuTTY or TeraTermインストール済み Step.1 …

SQLインジェクション対策の一歩としてプレースホルダを利用する

そもそもSQLインジェクションとは? 悪意を持ったユーザが入力フォームなどにSQLを打ち込んで、不正に データベース(以下DB)にアクセスすること。XSS(クロスサイトスクリプティング)に次いで 有名な攻撃手法とも言われます。 この攻撃を受けると・・・ D…

MySQLで大容量のデータを挿入する前に

MySQLに大容量の画像を挿入する前に確認したいこと ちょっとした画像アップローダをPHP+MySQLで実装したのですが、下記のようなエラー を吐きました。 Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC o…