タグ

PDOに関するiwwのブックマーク (29)

  • PDO 関数

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

  • PDO(PHP Data Objects)を試してみる - PDO_OCIは今どんな感じ? - Do You PHP?

    PDO1.0以降、定数が「PDO_xxx」から「PDO::xxx」に変更になっていますので、それ以前のバージョンを使用していた方は注意が必要です。 2005/06/10付けでPHP5.1.0β1がリリースされましたが、標準の拡張モジュールとしてPDOが含まれており、configure時に「--with-pdo-oci」を付けてbuildするようになります。 PHPDBを扱う際、最も一般的な方法としてOCI8やpgsqlmysqlなどの拡張モジュールを使用する方法が上げられますが、DBによってAPIが異なってしまいます。これを抽象化するため、データ抽象化レイヤ(Data Abstraction Layer)に相当する各種ライブラリが多くで回っています。現時点で出回っているライブラリとしては、おそらくデファクトスタンダードであると思われるPEAR::DBや拡張モジュールのdbx、最近流行(

  • 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開発
    iww
    iww 2008/10/14
  • PHP :: Bug #40740 :: PDO::execute() errors when parameters are used in LIMIT clause

    iww
    iww 2008/10/02
    LIMIT句のバグについて
  • Zend_Db_Statement の LIMIT 句の挙動 - Memo

    Zend_Db_Statement で LIMIT 句をプレイスホルダーにした場合の挙動が良くわからない。 <?php $id = 1; $limit = 10; $sql = 'SELECT * FROM statuses where user_id = ? LIMIT ?'; // $this->_db は Zend_Db_Adapter_Pdo_Mysql オブジェクト $stmt = $this->_db->query($sql, array($id, $limit)); $rows = $stmt->fetchAll(); 上記なようなコードを実行した場合、以下のようなエラーが発生する。 SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; che

    Zend_Db_Statement の LIMIT 句の挙動 - Memo
    iww
    iww 2008/10/02
    LIMIT句のバグについて
  • PDOでLIMIT句のプリペアードステートメントに関する不具合? - なんでも Do it yourself

    自分のXREA+Plusでの環境 ・PHP5.2.5 ・MySQL5.1.22 上で、 $rs = $myDB->prepare(’SELECT * FROM tableA WHERE id = ? group by id order by id LIMIT ? ,10′); $rs->execute(array($_GET['id'],$page)); というPDOを使った処理を行おうとしたが、どうもLIMIT句の部分がうまくいかない。 limit句の?を直接数字にしてみると動作しているので、プリペアードステートメントに関する不具合?かとも思った。 ググってみると http://kandk.cafe.coocan.jp/blog/jeans/index.php?itemid=617 似たような人がいたので、やはりそうなのかと。 とりあえず、 $rs = $myDB->prep

    iww
    iww 2008/10/02
    LIMIT句のバグについて
  • PDOでLIMIT句のプリペアードステートメントに関する不具合? - 不思議な物ショップ:楽天ブログ

    2008.08.16 PDOでLIMIT句のプリペアードステートメントに関する不具合? カテゴリ:WEB開発 PDOでLIMIT句のプリペアードステートメントに関する不具合? http://blog.jplace.biz/archives/16 私も上記と、全く同じ症状に悩まされました。 XREAにおいて、PDOでLIMIT句のプリペアードステートメントを使うと正常に動きません。 開発用のサーバーで問題のないプログラムを転送したのですが動きませんでした。 インターネットのBlogが普及したことの ありがたみを感じます。 以前なら、自分のせいなのか、サーバー側のせいなのか、問題を切り分けるのに苦労したと思いますが、今なら、検索すれば、解決への糸口が見つかります。 私も、ヒントを与えてくださる方々へのお礼を兼ねて、こうした情報は、日記に書き残すようにしています。 そういえば、この問題は、以前も

    PDOでLIMIT句のプリペアードステートメントに関する不具合? - 不思議な物ショップ:楽天ブログ
    iww
    iww 2008/10/02
    LIMIT句のバグについて
  • Jeans CMS 製作日記 >> PDOへの移行はほぼ終了

    iww
    iww 2008/10/02
    LIMIT句のバグについて
  • きょうもぼへぼへちゃんがゆく : PDOStatement->bindParamの罠 - livedoor Blog(ブログ)

    PDOStatement->bindParam で、データをinsertしようとしていたときのこと。 foreach($this->aryNegoBindClause as $dbName => $data) { Lgr::debug(':'.$dbName ." ". $data); $stmt->bindParam(':'.$dbName , $data); } $stmt->execute(); $stmt->closeCursor(); って実行すると、データベースにはすべて数字がセットされている? なんだこれ? デバッグしてみても、ちゃんと値は格納されているし、 bindParamの返値も問題なし。 なのに、なんで、データが入らない? PDOStatement->bindParam をよく見てみる。 準備された SQL ステートメント中で、 対応す

    iww
    iww 2008/08/29