タグ PDO
人気順 5 users 50 users 100 users 500 users 1000 usersPHP 7.2以降におけるPDO::PARAM_INTの仕様変更 | 徳丸浩の日記
サマリPHP 7.2以降、PDOの内部実装が変更された。動的プレースホルダ(エミュレーションOFF)にてバインド時にPDO::PARAM_INTを指定した場合、PHP 7.1までは文字列型としてバインドされていたが、PHP 7.2以降では整数型としてバインドされる。 この変更により、従来PDOが内包していた「暗黙の型変換」は解消される一方、... 続きを読む
PHPの例外 - Qiita
定義済み例外とSPL例外 PHPにはPHP本体が持つ 定義済み例外 とPHPに標準でバンドルされるStandard PHP Library(SPL)の例外の SPL例外 の2種類の例外があります。SPLは標準で組み込まれるのでPHPの機能として標準的に使うことも可能ですが、マニュアルでも個別のページを持っています。 定義済み例外 SPL例外 SPL例外 SPLの作者はPDOなど多数のパッケーのle... 続きを読む
PDOに複文実行を禁止するオプションが追加されていた | 徳丸浩の日記
エグゼクティブサマリ PHP 5.5.21、PHP 5.6.5 以降、PHPにPDO::MYSQL_ATTR_MULTI_STATEMENTSというオプションが追加され、PDO+MySQLの組み合わせで、SQLの複文を禁止できるようになった。この設定はSQLインジェクションの緩和策として有効である。 はじめに 2013年12月に公開した PHP+PDO+MySQLの組み合わせではSQLインジェク... 続きを読む
PHP の DB アクセスは PDO に決まりだと思う理由 | Webセキュリティの小部屋
はじめに PHP から DB アクセスする方法は多岐に渡り、その中でもメジャーなのは PDO (PHP Data Object) と Pear の MDB2 なのではないかと思います。 他にも組み込み関数の、Mysql 関数や Mysqli 関数があるようですが、データベースを選ばないということでは、PDO と MDB2 に軍配があがるのではないでしょうか。 PDO と MDB2 のどちらを選ぶ?... 続きを読む
PHP - PDOでオブジェクトをフェッチ&JSONとCSVファイル出力 - Qiita [キータ]
PDOを使ったデータベース操作でオブジェクトを扱う場合、不便なところが結構あります。 それを PDOStatement を拡張することで使いやすくしようという話を基本に、応用例としてJSON出力とCSVファイル出力の方法を紹介します。 オブジェクトで取得するためのフェッチモード フェッチモードには多彩なものが用意されているのですが、オブジェクトで取得する場合はどれも使いづらいです。 自分はいわゆる... 続きを読む
俺の脳内選択肢が、SQLインジェクション対策を全力で邪魔している — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something
PHP Advent Calendar 2013 in Adventarの19日目です。昨日も私の「PDOでの数値列の扱いにはワナがいっぱい(2)」でした。 うっかりtogetterなんか見てしまい、無駄に時間を使ってしまったと後悔した上に混乱してしまい余計にわからなくなってしまった人もいるかも知れません。 そこで、せっかくの機会なので、SQLインジェクション対策について、現在の私の考えをまとめて... 続きを読む
PDOでの数値列の扱いにはワナがいっぱい — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something
PHP Advent Calendar 2013 in Adventarの15日目です。 みなさん、史上空前のSQLのエスケープブームの中、いかがお過ごしでしょうか? なお、「我が社のプリペアドステートメントは大丈夫なのか?」という疑問をお持ちの方には、以下の記事をお薦めします。 漢(オトコ)のコンピュータ道: SQLインジェクション対策に正解はない さて、あまりにエスケープが人気なので、プリペア... 続きを読む
CakePHPのfind()で取得したデータを正しい型で受け取る(mysql) - cakephperの日記(CakePHP, MongoDB)
CakePHP2, cakephpCakePHP2からはPDOを使ってDBアクセスするようになりました。PDO(mysql)では、デフォルト設定でデータをfetchするとint型のカラムでもstring型として結果が返ってきます。CakePHPもこの影響を受けており、jsonデータなどに変換する際や、型を厳密に扱いたい場合に影響がます。(CakePHP1では、PDOを使っていませんがintカラムは... 続きを読む
第70回PHP勉強会で浮動小数点数の話をしました - hnwの日記
7月22日に開催された第70回PHP勉強会で発表してきました。以下が発表資料です。 浮動小数点数周りのトピックを3点紹介する内容でしたが、思ったより反応が良かったように思います。 ただ、面白おかしく話そうとして、聞いている方々に無駄に恐怖を与えてしまったかもしれません。冷静に読み返していただければ、怖いように見える内容もレアケースの話題が多いことがわかるかと思います。 また、PDOの挙動については... 続きを読む
PHP 5.5 で mysql 拡張モジュールが非推奨になり、将来において WordPress を筆頭にさまざまな CMS のアップグレード作業が必要になります - Sarabande.jp
PHP 5.5 で mysql 拡張モジュールが非推奨になり、E_DEPRECATED エラーが表示されるようになりました。将来の PHP のバージョンで削除されます。 mysql 拡張モジュールに依存する CMS を使ってサイトを運用している場合、将来、運用サーバーに導入されている PHP のバージョンの切り替えに備えて、 mysqli もしくは PDO に対応した CMS のバージョンへのアッ... 続きを読む
『ツイッターでログインするWebサービスを作ろう (全14回)』を再収録しました #ドットインストール | IDEA*IDEA
さて「ツイッターでログインするWebサービスを作ろう」を最新のAPIにあわせて再収録しました。データベースもPDOに変更。音質も良くなってすっきり。 ↑ こういうサービスの作り方ですね。 ↑ じゃんじゃか作っていきます。コード書くの楽しいですよね。 なお、旧版は全19回でしたが今回は14回に抑えることもできました。さてこれで全118レッスン、動画数は1,773本ですよっと。どんどんいかねば。 » ... 続きを読む
DSAS開発者の部屋:MySQL を PDO で使うときは ATTR_EMULATE_PREPARES を設定しよう
「DSAS for Social を支える技術」というネタでadvent calendar に挑戦します。 methane です。 PDOで MySQL を使うときは、みなさん $stmt = $con->prepare("..."); して $stmt->execute($values); とかしてプリペアドステートメントを利用されていると思います。 実は、このプリペアドステートメント、パフォー... 続きを読む
徳丸浩の日記: PDOにおける一応の安全宣言と残る問題点
2011年8月22日月曜日 PDOにおける一応の安全宣言と残る問題点 8月18日にPHP5.3.7がリリースされました。このリリースにより、PDOのSQLインジェクションの問題が一応解決されたと判断しましたので、ここに「一応の安全宣言」を表明するとともに、残る問題について報告します。 PDOの問題とは何か 以前、ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション)にて... 続きを読む
ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション) - 徳丸浩の日記
●ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション) PHPのデータベース・アクセス・ライブラリPDOは、DB接続時の文字エンコーディング指定ができないため、文字エンコーディングの選択によっては、プレースホルダを使っていてもSQLインジェクション脆弱性が発生します。 はじめに 本を書いています。SQLインジェクションの節から書き始めて、初稿はレビュアーの方々にお送り... 続きを読む
PDO/MySQL(Windows版)の文字エンコーディング指定の不具合原因 - 徳丸浩の日記
●PDO/MySQL(Windows版)の文字エンコーディング指定の不具合原因 前回のブログ「PHP5.3.6からPDOの文字エンコーディング指定が可能となったがWindows版では不具合(脆弱性)あり」にて、PHP5.3.6(本エントリ執筆時点での最新版)からPDOにてサポートされた文字エンコーディング指定がWindows版では正しく動作しないことを報告しました。Linuxでは正常に動作するので... 続きを読む
PHP5.3.6からPDOの文字エンコーディング指定が可能となったがWindows版では不具合(脆弱性)あり - 徳丸浩の日記
●PHP5.3.6からPDOの文字エンコーディング指定が可能となったがWindows版では不具合(脆弱性)あり PHP5.3.6からPDO/MySQLにてデータベースの接続文字列にて文字エンコーディングが指定可能となりました。この機能を検証した結果、Linux上では正常な動作を確認しました。Windows版でも一見動作するようですが、動的プレースホルダ内部のエスケープ処理に不備があり、Shift_... 続きを読む
ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション)
●ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション) PHPのデータベース・アクセス・ライブラリPDOは、DB接続時の文字エンコーディング指定ができないため、文字エンコーディングの選択によっては、プレースホルダを使っていてもSQLインジェクション脆弱性が発生します。 はじめに 本を書いています。SQLインジェクションの節から書き始めて、初稿はレビュアーの方々にお送り... 続きを読む
CodeZine:PDOでサクサクDB開発(PHP 5, PDO, データベース)
はじめに PHP界隈では現在、PHP 4からPHP 5への移行が進んできており、ここ最近ではPHP 5の機能を活用したフレームワークも多く出てくるようになりました。 PHP 5は、PHP 4に比べオブジェクト指向のサポートや速度面での向上などが取り上げられる中、最も注目すべき点であるデータベースへのアクセスを抽象化したレイヤーとしてPDOが登場しました。 今回はそのPDOに注目し、サンプルを交えて... 続きを読む