タグ

PDOに関するstarneon3517のブックマーク (15)

  • PHP: バッファクエリと非バッファクエリ - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

  • pdoでLIKE検索する際の注意点 - Qiita

    前提 あくまでもMysqlだけでの話を前提としてお話します。 先日自分が書いたコードで指摘を受けたため、備忘録として残しておきます。 実際あったコード ユーザがのタイトルをLIKE検索したく、下記のようにPDOで実装を行っていました。 $sql = 'select * from books where title like ?'; $stmt = $dbh->prepare($sql); $stmt->execute(array(sprintf('%%%s%%', $title))); $result = $stmt->fetchAll(); ここで、$title には、ユーザが入力した検索したいの名前が入っているものとします。 受けた指摘としては、ユーザが[%]や[_]という文字列を検索したい場合に正しく動作するか?というものでした。 Mysqlでは、LIKE検索に使われる特殊文字列

    pdoでLIKE検索する際の注意点 - Qiita
  • PDOでMysqlのトランザクション処理 | スターフィールド株式会社

    PDOでmysqlに接続しトランザクション処理を行っていきます。 トランザクションとは 1つの作業単位として扱われるSQLクエリの集まりです。 複数のUPDATEやINSERTをひとまとまりとして、正常に処理が行われた場合のみデータベースに反映します。 ひとつでも正常に処理が行われなかった場合は、すべての処理結果はデータベースに反映されません。 トランザクションには、ACID特性というものがあり、トランザクション処理において必要とされる4つの要素、Atomicity(原子性)、Consistency(一貫性)、Isolation(独立性)、Durability(永続性)を頭字語で表したものです。 Atomicity(原子性) トランザクションに含まれる手順が「すべて実行されるか」「すべてされないか」のどちらかになる性質。 Consistency(一貫性) どんな状況でもトランザクション前後

  • websec-room.com - websec room リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

    websec-room.com - websec room リソースおよび情報
  • 【PDO】bindParamとbindValueの違い【PHP】 | WEBマスターの知恵ブログ

    bindParamとbindValueの違いについての覚書です。 bindValue : 値をパラメータにバインドする プリペアドステートメントで使用する SQL 文の中で、対応する名前あるいは疑問符のプレースホルダに値をバインドします。 bindParam : 指定された変数名にパラメータをバインドする 準備された SQL ステートメント中で、   対応する名前もしくは疑問符プレースホルダにパラメータをバインドします。   PDOStatement::bindValue() と異なり、   変数は参照としてバインドされ、PDOStatement::execute()がコールされたときのみ評価されます。 PHPマニュアルの該当箇所には、このような説明があります。 ただ、これだけでは何のことかイマイチ分かりません。 この二つで分かりやすいのは、単純な動作のbindValueです。 基的な動

  • websec-room.com - websec room リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

  • PDOでATTR_EMULATE_PREPARESを適切に設定してないとSQLインジェクションの原因になるかも(MySQL編) - Qiita

    確認環境 MySQL 5.5.27 PHP 5.4.7 現象 PDO::setAttribute( ATTR_EMULATE_PREPARES, false ) をせず、prepareしても静的プレースホルダは使用されない。 確認 <?php $dsn = 'mysql:dbname=test;host=localhost'; $user = 'root'; $password = ''; try{ $pdo = new PDO($dsn, $user, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $sql = 'select blog_id, blog_name from b

    PDOでATTR_EMULATE_PREPARESを適切に設定してないとSQLインジェクションの原因になるかも(MySQL編) - Qiita
  • 合肥便民家电维修服务网点

    日媒分析指出� �� ,岸田正考虑脱离以政府为主导�����、执政党影响力偏弱的政高党低决策��� ,转向政府同执政党紧密合作的政高党高目标���。点击进入专题�����:小浪早读湖南二人的遭遇引发舆论愤慨�����,不少民众表示支持她俩状告澳大利亚政府 ��。 查看更多

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

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

    PDOで接続、SELECT、プリペアドステートメントとは(PHPでMySQLに接続) - Qiita
  • PHP: どの API を使うか - Manual

    どの API を使うか PHP には、様々な MySQL へ接続する API があります。 以下に、mysqli と PDO が提供する API を示します。 それぞれのコードは、"example.com" 上で稼働する MySQL サーバーに ユーザー名 "user"、パスワード "password" で接続するものです。 そして、クエリを実行してユーザーにあいさつします。 <?php // mysqli $mysqli = new mysqli("example.com", "user", "password", "database"); $result = $mysqli->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL"); $row = $result->fetch_assoc(); echo htmle

  • PDOの真の力を開放する - PHPでデータベースを扱う(3)

    ちょっと遅れましたが、シリーズの第3回です。前回までに論じた内容をふまえて、簡単な実装を示します。↓前回までの内容はこちら。 DAOの悪夢 - PHPでデータベースを扱う(1) - 泥のように ドメイン駆動設計という救世主 - PHPでデータベースを扱う(2) - 泥のように 題材 「記事にタグを設定できるブログ」みたいなシステムを考えてみます。ブログ記事を示すEntryテーブル、タグを表すTagテーブルの二つを用意しました。MySQL WorkbenchによるER図(鳥足記法)は以下になります。 1つのEntryに対して複数のTagがある、1対多の関係です。同じTagが複数のEntryに関連するため、多対多の関係と見なすこともできそうですが、タグ程度だとあまり意味がないので、これ以上のテーブル分割はやめておきます。 Entryテーブルの主キーがentryIdと冗長な名前をしているのは、自

    PDOの真の力を開放する - PHPでデータベースを扱う(3)
  • PDOでの数値列の扱いにはワナがいっぱい — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something

    PHP Advent Calendar 2013 in Adventarの15日目です。 みなさん、史上空前のSQLのエスケープブームの中、いかがお過ごしでしょうか? なお、「我が社のプリペアドステートメントは大丈夫なのか?」という疑問をお持ちの方には、以下の記事をお薦めします。 漢(オトコ)のコンピュータ道: SQLインジェクション対策に正解はない さて、あまりにエスケープが人気なので、プリペアドステートメントにもう少しがんばってもらいたい気がしました。そこで、今日は、以下の徳丸さんの大変に力作な記事に関連した、PDOでのプリペアドステートメントについての記事を書いてみたいと思います。 PHPセキュリティの解説書12種類を読んでSQLエスケープの解説状況を調べてみた | 徳丸浩の日記 一応、今でこそPDOは普通に使われていますが、細かい点までみていくと、仕様なのかバグなのか、あるいはこ

  • PDOの利用 | PHP Labo

    データベースに接続する PDOでデータベースに接続するには、PDO クラスを使用します。接続に成功するとオブジェクトが返されます。 オブジェクト = new PDO( 'データベースの種類:dbname=データベース名;host=接続先アドレス', 'ユーザー名', 'パスワード' ); MySQLに接続する場合、データベースの種類は mysql を指定します。もしPostgreSQLに接続したければ pgsqlSQLiteに接続したければ sqlite を指定します。他にも、色々な種類のデータベースに接続することができます。 接続に失敗するとPDOは「例外」を発生させます。これは try と catch を使用すれば補足することができます。具体的には try { チェックしたい処理 } catch (PDOException $e) { 例外が発生したときの処理 } という形式になりま

  • PDO 関数

    導入 PHP Data Objects (PDO) 拡張モジュールは、 PHP の中からデータベースにアクセスするための軽量で高性能な インターフェイスを定義します。 PDO インターフェイスを実装する各データベースドライバは、 正規表現関数のようなデータベース固有の機能を提供することができます。 PDO 拡張モジュールによりそのデータベースの全てのデータベース関数を 実行できるわけではないことに注意してください。 データベースサーバにアクセスするには、 データベース固有の PDO ドライバ を使用する必要があります。 PDO は、データアクセスの抽象化レイヤを提供します。 つまり、使用しているデータベースが何であるかにかかわらず、同じ 関数を使用してクエリの発行やデータの取得が行えるということです。 PDO は、データベースの抽象化を行うのでは ありません。つまり、SQL を書き直したり

  • PDOでサクサクDB開発

    はじめに PHP界隈では現在、PHP 4からPHP 5への移行が進んできており、ここ最近ではPHP 5の機能を活用したフレームワークも多く出てくるようになりました。 PHP 5は、PHP 4に比べオブジェクト指向のサポートや速度面での向上などが取り上げられる中、最も注目すべき点であるデータベースへのアクセスを抽象化したレイヤーとしてPDOが登場しました。 今回はそのPDOに注目し、サンプルを交えてPDOの使い方を紹介します。 対象読者 PHP 5を使ったことがある方 以前PEAR::DBなどを用いてデータベースを使ったアプリケーションを作成したことのある方 必要な環境 PDOはPHP 5.1から標準で導入されるようになりました。Windows/UNIXを問わず利用することができます。よってPHP 5.1の環境と、PDOの動作に必要なデータベースの構築を行ってください。 PDOとは PDO(

    PDOでサクサクDB開発
  • 1