すべての人に良い一日を!
以前に約束した
ように 、一部のHabrユーザーのリクエストに応じて、PDOに基づいて作成された新しいバージョンのPEAR DBエミュレーターをネットワークに投稿し、PHPの新しいバージョンで正常に動作します。
snvを使用して、
ここ( コードセクション、 トランクブランチから)または
ここ からダウンロードできます。
svn checkout svn://svn.code.sf.net/p/peardb2pdo/code/trunk peardb2pdo-code
または:
svn checkout svn.code.sf.net/p/peardb2pdo/code/trunk peardb2pdo-code
必要に応じて、ベース上で重いアドオンを使用したくない新しいプロジェクトを作成するときに、コードをベースとして使用できます。ライセンス:
GNU General Public License詳細...
タイトルが示すように、すべてはPDOの下で書き直され、PHPの最新バージョンで動作するように設計されています。
コードは、1つの(まだ完了していない)プロジェクトでテストされました。 それはうまくいくようです。 いくつかの関数はMySQLに固有ですが、必要に応じてその詳細を取り除くことができます($サーバークラスのプロパティを参照)。 パラメーター化されたクエリへの機能を追加しました。また、以下の例とクラスコードから明らかになる他のささいなことも、誰でも理解できると思います。 願いと訂正を歓迎します。 最初の記事への応答から判断すると、PEAR DBの「飛び降り」の問題は関連しています。 おそらくテストと磨きをかける価値があったのでしょうが、人々は急いでいるので、もっと早くそれを出すように求めているので、興味があり必要な人と一緒にやることを提案します。
コメント/提案/修正は、PMまたはプロジェクトページの
ディスカッションで、修正または補足する必要のあるコードを記載してください。
次に例を示します。
1.接続 require_once 'includes/classes/classERROR.php'; require_once 'includes/classes/classMYSQLPDO.php'; $db = new DB(); $show_errors = false; $stop_after_error = false; $on_error_rollback = true; if(!$db->connect('localhost','user','pass', 'database','table_preffix_',$show_errors , $stop_after_error, $on_error_rollback )) { echo "DB Connect Error!"; exit(); }
2.パラメータ化されたクエリ-オプション1: $params['person_id']=array('57FA56C2',8); $params['nickname']=array('USER',4); print_r($db->getAll("select * from persons WHERE person_id=:person_id and nickname=:nickname",$params)); echo " : ".$db->fcount(); echo " : ".$db->rcount();
3.パラメータ化されたクエリ-オプション2: print_r($db->getRow("select * from persons WHERE person_id=? LIMIT 1",array('57FD56C2'))); echo " : ".$db->fcount();
パラメーター:関数の
$エイリアスを使用すると、SQLクエリをセッションに分割できます(たとえば、1つのサイクルで複数のパラメーター化されたクエリを組み合わせる必要がある場合(パラメーターと一部の関数の結果が混在しないように)。
すべてに飽きないことを望みます。 他の可能性は、コードから非常に明白で明確です。 あまりキックしないでください。ただし、コードを思い出させたい場合は。 それの必要性は、レイアウトを要求する手紙で判断して、本当に急いでいる人々がいます。 エラーが見つかった場合は、作者に通知してください。
ご清聴ありがとうございました。 誰かが助けてくれたらと思います。 そうでない場合は、私の写真を見てください:)
そこでリラックスして忘れることができます:)
敬具、ミハイル・チェルボネンコ。
PS エラー処理クラスは、すべての欠点を備えた古いバージョンに配置されており、手はまだ到達しておらず、おそらく近い将来到達しないでしょう(このバージョンでは個人的には私に合っています)。 その中の何かを変更する必要はあまりないと思いますが、誰かがそれを改善したら、喜んでプロジェクトに投稿します。