PEAR エラー manifest cannot be ・・・

PHP

pearが動作していない時に、PEARパッケージマネージャーを取得しようと「go-pear.phar」のコマンドを実行した時に表示された、下記エラーの解決。

 PEAR manifest cannot be larger than 100 MB in phar ""

上記のエラー、保存するときに問題があるようで、「http://pear.php.net/go-pear.phar 」のリンクを右クリック、「名前を付けてリンク先を保存」で保存して、「C:〇〇\php\pear\go-pear.phar」に置いて実行すると、エラー表示されず正しく実行できる!(ブラウザはFirefox)

PEAR

データのページ分割を行う
PHP

PEAR は、”PHP Extension and Application Repository” を省略したもので、 果物の梨と同じように(「ペア」と)発音します。 PEAR の目的は、次のものを提供することにあります。

  • PHP ユーザを対象とする、オープンソースなコードの構造化されたライブラリ
  • コード配布およびパッケージ管理のためのシステム
  • PHP のコード作成に関する標準スタイル (こちらを参照)
  • PHP 拡張モジュール・コミュニティライブラリ (PHP Extension Community Library: PECL) (詳細はこちらを参照)
  • PHP/PEAR コミュニティをサポートするための Web サイト、 メーリングリスト、ダウンロードミラー

抜粋 http://www.go-pear.org/manual/ja/introduction.php

PDOを利用して、last insert idを取得する

MySQL

PDOを利用して、last insert idを取得する

何かと、さっき更新したデータのIDが必要な場面ってありますよね。
My SQLで

 mysql> SELECT LAST_INSERT_ID();

とやれば取得できますが、PDOを利用していれば、PDOの関数を使って、SQLを発行せずにlast insert idを取得することができます。

 $dbh = new PDO(‘mysql:host=localhost;dbname=test’, ‘username’, ‘password’);

 
 $stmt = $dbh->prepare("INSERT INTO test (name, email) VALUES(?,?)");
 
    try {
        $dbh->beginTransaction();
        $tmt->execute( array('user', 'user@example.com'));
        print $dbh->lastInsertId(); 
        $dbh->commit();
 }

これですね、commitの後に$dbh->lastInsertId(); とやると、0しか返ってきません。
なので、トランザクションの間に取得する必要があります。

PDOをWindowsで使う

PHP
MySQL

PDOをWindowsローカルで使う

PDOとはPHP Data Objects (PDO) 拡張モジュールで、 PHP の中からデータベースにアクセスするための軽量で高性能な インターフェイスを定義します。

WindowsでPHP5.1以降を使用しているのであれば、共有モジュールとして PHP に同梱されています。
使えるようにするには、php.ini ファイルを次のように編集します。

次の文を、最後かどこかに付け加える

 extension=php_pdo.dll

次に、その他のデータベース固有の DLL ファイルを選択します。
たとえば、次のようにphp.iniの extension=php_pdo.dll の下に書きます。

 extension=php_pdo.dll
 extension=php_pdo_firebird.dll
 extension=php_pdo_informix.dll
 extension=php_pdo_mssql.dll
 extension=php_pdo_mysql.dll
 extension=php_pdo_oci.dll
 extension=php_pdo_oci8.dll
 extension=php_pdo_odbc.dll
 extension=php_pdo_pgsql.dll
 extension=php_pdo_sqlite.dll  

これらのdllファイルは、同じくphp.iniのextension_dir で指定した場所に存在する必要があります。
通常は、そのまま入っています。

PDOを有効にしたあと、PHPのバージョンを見るで、PDOの項目がたされています。

  • php_pdo_firebird.dllなどは「見つかりません」というメッセージが、毎回Apacheの起動時に出てしまうため、iniファイルから削除してしまいました。確かにextension_dirで指定した場所にあるんですが、なぜでしょうか。 — ななし {2007-04-23 (月) 23:33:36}

PDOのフェッチモード

PHP
MySQL

PDOのフェッチスタイルをメモっておきます。

  1. FETCH_NUM…0から始まる数字をキーとする配列
  2. FETCH_ASSOC…カラム名をキーとする連想配列
  3. FETCH_BOTH…0から始まる数字をキーとする配列、カラム名をキーとする配列、両方返します。
  4. FETCH_OBJ…stdClassオブジェクトを返します。