mysqli_prepare
    (PHP 5)
mysqli_prepare
    (no version information, might be only in CVS)
mysqli->prepare -- 
     実行するための SQL ステートメントを準備する
    
説明
手続き型:
mysqli_stmt 
mysqli_prepare ( mysqli link, string query )
オブジェクト指向型(メソッド)
class 
mysqli { 
mysqli_stmt 
prepare ( string query )
}
      mysqli_prepare() は、null で終わる文字列から
      SQL クエリを準備し、後でそのステートメントを操作するために使用する
      ステートメントハンドルを返します。
      クエリは、単一の SQL 文である必要があります。
     
注意: 
       ステートメントの最後にセミコロンや \g
       を追加してはいけません。
      
      query にはひとつまたは複数のパラメータを
      含めることが可能です。そのためには、適切な位置にクエスチョンマーク
      (?)を埋め込みます。
     
注意: 
       パラメータのマーカは、それが SQL 文の適切な位置にある場合のみ
       有効です。例えば INSERT 文(行に登録するカラム値を指定する)の
       VALUES() リストの中や WHERE 句で列のデータと比較する値などが
       適切な位置の例です。
      
       しかし、識別子(テーブルやカラムの名前)や SELECT 文で選択する
       項目の名前に指定したり、(等号 = のような)
       2 項演算子の両側にパラメータを指定したりすることはできません。
       後者の制限は、パラメータの型が判断できなくなることによるものです。
       また、パラメータのマーカを NULL と比較して
       ? IS NULL のようにすることもできません。
       一般に、パラメータが使用可能なのはデータ操作言語(DML)
       ステートメントであり、データ定義言語(DDL)ステートメントでは
       使用できません。
      
      パラメータマーカは、ステートメントの実行や行の取得の前に
      mysqli_stmt_bind_param()
      や mysqli_stmt_bind_result() を使用して
      アプリケーション変数にバインドする必要があります。
     
返り値
     mysqli_prepare() はステートメントオブジェクトを
     返します。エラー時には FALSE を返します。
    
例
例 1. オブジェクト指向型 
<?php $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
  /* 接続状況をチェックします */ if (mysqli_connect_errno()) {     printf("Connect failed: %s\n", mysqli_connect_error());     exit(); }
  $city = "Amersfoort";
  /* プリペアドステートメントを作成します */ if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {
      /* マーカにパラメータをバインドします */     $stmt->bind_param("s", $city);
      /* クエリを実行します */     $stmt->execute();
      /* 結果変数をバインドします */     $stmt->bind_result($district);
      /* 値を取得します */     $stmt->fetch();
      printf("%s is in district %s\n", $city, $district);
      /* ステートメントを閉じます */     $stmt->close(); } 
  /* 接続を閉じます */ $mysqli->close(); ?>
 |  
  | 
例 2. 手続き型 
<?php $link = mysqli_connect("localhost", "my_user", "my_password", "world");
  /* 接続状況をチェックします */ if (mysqli_connect_errno()) {     printf("Connect failed: %s\n", mysqli_connect_error());     exit(); }
  $city = "Amersfoort";
  /* プリペアドステートメントを作成します */ if ($stmt = mysqli_prepare($link, "SELECT District FROM City WHERE Name=?")) {
      /* マーカにパラメータをバインドします */     mysqli_stmt_bind_param($stmt, "s", $city);
      /* クエリを実行します */     mysqli_stmt_execute($stmt);
      /* 結果変数をバインドします */     mysqli_stmt_bind_result($stmt, $district);
      /* 値を取得します */     mysqli_stmt_fetch($stmt);
      printf("%s is in district %s\n", $city, $district);
      /* ステートメントを閉じます */     mysqli_stmt_close($stmt); } 
  /* 接続を閉じます */ mysqli_close($link); ?>
 |  
  | 
上の例の出力は以下となります。
Amersfoort is in district Utrecht  |