PDO は、PHP の標準的なデータベース操作方法になることは明らかです。中国の多くの php スペースまたはホストはすでに php5.2 以降をサポートしていますが、人気や技術的な理由により pdo をサポートしていないものもあります。
今年から、Harbin Zhihua Software の PHP コースは、データベース操作の PDO に焦点を当てたコースに変更されました (もちろん、コースでは引き続き、学習中と最終トレーニング中に mySQL 関数のデータベース トレーニングが行われます)。実際の開発では、必然的に私の生徒が開発したプログラムに遭遇しました。プログラムを実装したところ、サーバーが pdo をサポートしていないことがわかり、幸いなことに、新しいバージョンの php をアップグレードしてインストールしたところ、問題は解決しました。
しかし、これには疑問が生じますか?
または、mySQL 関数メソッドを使用して開発します。
または、開発に PDO を使用してから、PHP バージョンをアップグレードします。
または、PDO 開発を使用して PHP バージョンをアップグレードできないことがわかり、mySQL 関数を使用して元の PDO コードを書き換えます
mySQL 関数による開発方法が最適な解決策になっているように思えますが、これは PDO 開発が普及するまで待つ必要があるのでしょうか?廃止され始めた開発手法であり、学生は学習を終えた後、数年後には慣れ親しんだ mySQL 関数の開発手法を放棄し、新しい pdo 開発手法に適応しなければなりません。
学生が仕事で古い mySQL 関数開発方法を扱いながら、新しい pdo 開発方法を学習できる妥協的な解決策はありますか?その日、学生は突然クラスを書きたいと言いました。クラスのメソッドはすべて pdo メソッド内にあり、mySQL 関数の操作をこのクラスのメソッドにカプセル化できます。
ソリューションの本来の目的は、開発に pdo メソッドを使用することです。mySQL 関数メソッドが必要な場合は、ライブラリ接続ファイルを mySQL 関数ライブラリ コードに置き換え、このクラスを最後に追加して、そのオブジェクトが含まれる操作オブジェクトをインスタンス化します。 pdoの実装方法がmySQL関数方式に変更されました
pdo の追加、削除、変更は同じで、コードは次のとおりです:
「./connDB.php」が必要です ;
'./Deep.Class.MySQLfunction4PDO.php' が必要です
$db = 新しい Deep_MySQLfunction4PDO();
$sql="ゲストブックに挿入(ゲスト名,ゲスト日付)値(’lvhaipeng zhihuasoft".mt_rand(1,100)." ’,’".date(’Y-m-d H:i:s’)."’)";
//2 実行メソッド
$count = $db->exec($sql);
エコー $カウント
?>
クエリコードは次のとおりです:
'./connDB.php' が必要です。
'./Deep.Class.MySQLfunction4PDO.php' が必要です
$db = 新しい Deep_MySQLfunction4PDO();
//2 クエリクエリ
$stmt = $db->query("SELECT * FROM ゲストブック" );
// 1 レコード
// $row =$stmt->fetch();
//echo $row[’guestName’],"
";
while($row = $stmt->fetch())
{
echo $row[’guestName’],"
}
?>
ライブラリ リンク ファイルの後に 2 行のコードを追加したことがわかります (もちろん、作業時にこの 2 行をライブラリ リンク ファイルに記述するのが適切です)
'./Deep.Class.MySQLfunction4PDO.php' が必要です
$db = 新しい Deep_MySQLfunction4PDO();
このように、Deep_MySQLfunction4PDOクラスを通じて、既存のPDOコードを変更することなくMySQL関数の動作を実現できます
Deep_MySQLfunction4PDO クラス ファイルのコードは次のとおりです:
/*
pdo メソッドを模倣する mysql 関数の操作クラス。
ハルビン志華ソフトウェア訓練学校 陸海鵬 2011-11-25
呼び出し: mysql ライブラリ関数の後に呼び出します
require './Deep.Class.MySQLfunction4PDO.php';
$db = 新しい Deep_MySQLfunction4PDO();
*/
// PDO クラスを模倣します
クラス Deep_MySQLfunction4PDO{
//挿入、削除、変更
パブリック関数 exec($sql){
@mysql_query( $sql ) または die("SQL ステートメントの実行エラー!");
mysql_affected_rows() を返す
}
//クエリ
パブリック関数クエリ($sql){
$stmt=新しい Deep_MySQLfunction4PDO_stmt();
$stmt->query=@mysql_query( $sql ) または die("SQL ステートメントの実行エラー!");
$stmt を返します。}
}
// PDOStatement クラスを模倣します
クラス Deep_MySQLfunction4PDO_stmt{
var $クエリ
パブリック関数 fetch(){
mysql_fetch_array($this->クエリ)を返す
}
}
?>
少し前にたくさんのコースがあったので、今週末は上記のようにレコードを整理する時間があります。別の学生は、PDO クラスを模倣する際にクエリに遭遇したとき、これを使用すべきではないと提案しました。 while($row =$stmt->) ;fetch()) ですが、foreach($stmt as $row) を使用します。 いいえ、このクラスの実装はコードの書き方が少し変です。整理して補足説明します。時間があるときにこの記事を
著者 ルー・ハイペン
http://www.bkjia.com/PHPjc/478490.html