タグ

2018年3月7日のブックマーク (6件)

  • PHPでプレースホルダを使ってSQLを発行する方法〜PDOの使い方 | Web活メモ帳

    PHPでプレースホルダ(SQLを発行する際に後から値を指定する方法)のやり方を聞かれたのでブログでもシェア。 PHPではPDOを使う事で簡単にプレースホルダが使えるようになりますよ。 以下のサイトを参考にさせていただきました。感謝! PDOで接続、SELECT、プリペアドステートメントとは(PHPMySQLに接続) PHPでPDOを使ってMySQLに接続、INSERT、UPDATE、DELETE、COUNT、SUM – Qiita プレースホルダとは 実際にプレースホルダを使った例を見てみましょう $sth = $dbh->prepare('SELECT name, color, calories FROM fruit WHERE calories < ? AND color = ?'); $sth->execute(array(150, 'red')); この「?(ハテナ)」記号が

  • 『acmailerとPHPの会員情報の連携をやってみる』

    別システムの会員情報を 無料で使えるインストール型メール配信CGIの「acmailer」にインポートする方法。 ①acmailerの会員情報はどういうふうに保存しているか CGI(perl)のシステムなのでおそらくファイルで情報を管理しているだろうと推測し、 acmailの管理画面にてメールアドレスの登録を行ったところ、 「data/mail.cgi」のファイルが更新された模様。 中を見ると登録したメールアドレスの情報が1行ずつ保存されている。 項目は ・IDらしきもの ・メールアドレス ・自由項目10個分 ・配信フラグ ・登録日 ・更新日 このファイルで間違いないでしょう。 ②mail.cgiの書き換え acmailerの会員情報の保存方法は分かったので、あとはPHP側で適用したい会員情報をDBから取得して、mail.cgiのフォーマットに合わせてファイルを生成しmail.cgiを上書き

    『acmailerとPHPの会員情報の連携をやってみる』
    cyar
    cyar 2018/03/07
    ACメーラーとDBの連携
  • PHP での SQL インジェクション対策はどのように行いますか?

    前提 まず、SQL インジェクション対策を含め、脆弱性対策の前提としてなるべく新しい安定版の PHP を利用するようにしてください。 バージョンアップにより脆弱性が解消したり、より安全になっています。 なお、以下の方法は PHP 5.3.7 以上で対応しています。(PHP 5.3.6 でも対応していますが、Windowsの実装が不完全です) ただし、PHP 5.3 系は 2014/8/14 でセキュリティサポートが終了しています。 PDO + 静的プレースホルダを用いた SQL 文発行 PDO を利用する場合、以下のポイントを押さえることで安全に利用出来ます。 1.文字エンコーディングを指定する 2.静的プレースホルダを用いる 3.バインド時に型を指定する それぞれについて、以下に実装方法を説明します。 1. 文字エンコーディングを指定する 期待した文字エンコーディングとして動作するよう、

    PHP での SQL インジェクション対策はどのように行いますか?
  • PHP: 文字セット - Manual

    文字セット 適切な文字セットをサーバーレベルで設定しておくのが理想であり、MySQL のマニュアルの » Character Set Configuration にもそうするよう書かれています。 しかしそれ以外にも、各 MySQL API には実行時に文字セットを指定する方法が用意されています。 警告 文字セットと文字のエスケープ 文字セットはきちんと理解して設定しておかないといけません。 すべての操作に影響が及び、セキュリティの問題を引き起こす可能性があるからです。 たとえば、文字列のエスケープ (mysqli なら mysqli_real_escape_string()、 PDO_MySQL なら PDO::quote()) は文字セットの設定に従った動きをします。 これらの関数は、クエリで設定した文字セットは使わないことを知っておくことが大切です。 たとえば次の例のような設定をしても

    PHP: 文字セット - Manual
    cyar
    cyar 2018/03/07
  • PDOでmysqlに接続する時の文字コード | Bamboo lath 日々の記録

    久しぶりにメモ。 開発環境でPDOからmysqlにつないでデータを入れたりしてたのに 番サーバに設置した途端にプログラムから入れたデータが文字化けした。 mysql> show variables like 'character_set%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | bina

    cyar
    cyar 2018/03/07
  • PDOで接続、SELECT、プリペアドステートメントとは(PHPでMySQLに接続) - Qiita

    PDOって何なんだ。 PDOは「PHP Data Objects」の頭文字をとった名称です。 って言われても「何がどうなってんの?」と思い、なかなか分からなかった。 データアクセス抽象化レイヤとか言われてるけど、「いや、だからソレ何?」って感じです。 調べたので解説します。 データアクセス抽象化レイヤ アプリケーションとDBMS(データベース管理システム)の間に入ってDBMSの違いを意識せずにアプリケーションを作成するもの。 要するに「色んなデータベースがあるけど、同じ様に書いても全部のデータベースに対応してますよ」って事です。(若干の差異はあるらしい) つまりPDOって… そのデータアクセス抽象化レイヤの一つで、PHP5.1からバンドルされてる(標準で使えるようになってる)ヤツです。 データベースを途中で変更しなければならない際などを考えると使いやすい。 プリペアドステートメントで結構動

    PDOで接続、SELECT、プリペアドステートメントとは(PHPでMySQLに接続) - Qiita
    cyar
    cyar 2018/03/07