PHP5.5 mysqliに基づくMySQLデータベースへの接続とデータの読み取り操作の例の詳細

5581 ワード

この例ではPHP 5について述べる.5 mysqliに基づいてMySQLデータベースに接続し、データを読み込む操作.皆さんの参考にしてください.具体的には以下の通りです.
勉強しています.PHPのAPIサポートを開く
(1)まずphpを変更します.iniのプロファイル.
次の文を検索します.

;extension=php_mysqli.dll


次のように変更します.

extension=php_mysqli.dll


(2)Apache/ISを再起動すればよい.
(3)説明:PHPはこの拡張ライブラリをサポートするために個別のファイルが必要であり、一般的にPHPディレクトリの下のextディレクトリでphp_を見つけることができる.mysqli.dllファイル(PHP<=5.0.2はlibmysqli.dll)は、もちろん、PHPのプロファイルにはextを正しく指す情報(extension_dir)が必要です.もしあなたのPHPにこのファイルがなければ、PHP 5のソースパッケージをダウンロードすることができます.なお、このAPI拡張は、PHP 5以上でしか使用できません.その他の詳細は、以下を参照してください.
2.PHP mysqli身分証明書
mysqliは「MySQL,Improved」の略で、この拡張はPHP 5にのみ適用されます.MySQL 4.1に使用できます.1以降.この拡張はMySQL 5.1で使用される認証プロトコルを完全にサポートし、前処理文とマルチ文APIもサポートします.さらに、この拡張は、先進的なオブジェクト向けのプログラミングインタフェースを提供します.




MySQLiの使用
次の例では、myDBデータベースのMyGuestsテーブルからid、firstname、lastname列のデータを読み込み、ページに表示します.

connect_error) {
  die("    : " . $conn->connect_error);
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
  //     
  while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
"; } } else { echo "0 "; } $conn->close(); ?>

以上のコードは以下のように解析されます.
まず,SQL文がMyGuestsデータテーブルからid,firstname,lastnameの3つのフィールドを読み出すように設定した.その後、変更SQL文を使用してデータベースから結果セットを取り出し、変数$resultにコピーします.
関数num_rows()は、返されたデータを判断する.
複数のデータが返される場合、関数fetch_assoc()は、結合セットを関連配列に配置し、出力をループする.while()は結果セットをループし、id、firstname、lastnameの3つのフィールド値を出力する.
次の例では、MySQLiのプロシージャ向けの方法を使用します.効果は上記のコードに似ています.
インスタンス(MySQLi-プロシージャ向け)

 0) {
  //     
  while($row = mysqli_fetch_assoc($result)) {
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
"; } } else { echo "0 "; } mysqli_close($conn); ?>

PDOの使用(+前処理)
次の例では、前処理文を使用します.
MyGuestsテーブルのid、firstname、lastnameフィールドを選択し、HTMLテーブルに配置します.

";
echo "IdFirstnameLastname";
class TableRows extends RecursiveIteratorIterator {
  function __construct($it) {
    parent::__construct($it, self::LEAVES_ONLY);
  }
  function current() {
    return "" . parent::current(). "";
  }
  function beginChildren() {
    echo "";
  }
  function endChildren() {
    echo "" . "
"; } } $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDBPDO"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests"); $stmt->execute(); // $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { echo $v; } } catch(PDOException $e) { echo "Error: " . $e->getMessage(); } $conn = null; echo ""; ?>

PHPに関する詳細について興味のある読者は、「php+mysqliデータベースプログラム設計テクニック総括」、「phpオブジェクト向けプログラム設計入門チュートリアル」、「PHP配列(Array)操作テクニック大全」、「PHP基本文法入門チュートリアル」、「php文字列(string)用法総括」、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.