タグ

PDOに関するsh2nm0k2のブックマーク (4)

  • PHP + PostgreSQL カーソルを使ったデータ取得の計測 - Shin x Blog

    PHP(pdo_pgsql)から PostgreSQL に SELECT 文でデータを取得する際に、カーソルを使った場合と使わなかった場合で、どのようにリソース消費(主にメモリと実行時間)の違いがあるのかを計測してみました。 検証内容 PostgreSQL テーブルに、1,000,000 件のレコードを持つテーブルを用意し、下記のようなパターンにて、PHP から全レコードを取得して、実行時間と消費メモリを計測します。カーソル利用時は、1度のフェッチで取得する件数によって計測しています。ここでは、前方向のカーソルのみ扱っています。 1) カーソル未使用 + 1 件づつフェッチ 2) カーソル利用 + 1 件づつフェッチ 3) カーソル利用 + 100 件づつフェッチ 4) カーソル利用 + 10,000 件づつフェッチ 5) カーソル利用 + 100,000 件づつフェッチ 6) カーソル利

    PHP + PostgreSQL カーソルを使ったデータ取得の計測 - Shin x Blog
  • PDOのwhereでIN句を使う - Qiita

    いつも忘れるので備忘録 PDOのwhere句でIN句を使おうとしても思ったとおりにはいかないので解決策を書いときます。 例 $names = array('taro', 'yuta', 'makoto'); $stmt = $pdo->prepare(' select * from user where name in (?) '); $stmt->execute($names); $stmt->fetchAll(); これだとうまくいきません。 where句のバインドは1:1で行うので、IN句で配列を使う場合には、配列の要素文だけ?を作らなければいけません。 そこで現状で、自分が一番簡単だと思う解決索を書いておきます。 $names = array('taro', 'yuta', 'makoto'); $inClause = substr(str_repeat(',?', count($

    PDOのwhereでIN句を使う - Qiita
  • PHP: ラージオブジェクト (LOB) - Manual

    この例では $lob という名前の変数に LOB をバインドし、 fpassthru() を使用してそれをブラウザに送信します LOB はストリームで表されるので、 fgets()、fread() および stream_get_contents() といった関数を 使用することができます。 <?php $db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2'); $stmt = $db->prepare("select contenttype, imagedata from images where id=?"); $stmt->execute(array($_GET['id'])); $stmt->bindColumn(1, $type, PDO::PARAM_STR, 256); $stmt->bindColumn(2, $lob, PDO::

  • PHPでデータベースに接続するときのまとめ - Qiita

    【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。PDO に関しては大きく変わっていない部分が多いとは思いますが, PHP 8.x 以降での動作保証はありません。 あらかじめ読んでおきたい記事 Qiita - 【PHP超入門】クラス~例外処理~PDOの基礎 by @7968 初心者がやりがちなミス 以下のどれかに1つでも当てはまるコードは見直す必要があります.付録にリンクを貼っておきましたので,「該当するかも?」という人はクリックして飛んで読んでください.太字にしてあるものは脆弱性に直結する危険度の高いものです. mysql_query などの非推奨関数を利用している SET NAMES あるいは SET CHARACTER SET などで文字コードを指定している そもそもデータベース

    PHPでデータベースに接続するときのまとめ - Qiita
  • 1