MYSQL_STMT * mysql_prepare(MYSQL *mysql, const char
          *query, unsigned long length)
        
説明
          ヌル終端文字列 query
          で指定された SQL
          クエリをプリコンパイルし、その後の処理に使用するステートメントハンドルを返します。このクエリは単一
          SQL
          ステートメントで構成されている必要があります。このステートメントには、その終わりを示すセミコロン(‘;’)または
          \g
          を追加する必要はありません。
        
          アプリケーションは、SQL
          文字列の適当な位置に疑問符(‘?’)を埋め込むことで、SQL
          ステートメントで 1
          つ以上のパラメータマーカーを使用できます。
        
          マーカーは、SQL
          ステートメントの特定の位置に埋め込まれた場合にのみ適正に処理されます。たとえば、マーカーは
          INSERT ステートメントの
          VALUES()
          のリストでレコードに設定するカラムの値を指定する部分、または
          WHERE
          節でカラムの値と比較する値を指定する部分に使用できます。しかし、SELECT
          ステートメントが返すカラムを指定する選択リストで識別子(テーブルまたはカラムの名前など)として使用したり、等号(=)などのバイナリ演算子の両方のオペランドを指定することはできません。パラメータの型を決定することができないので、後者の制約が必要になります。一般に、パラメータは、データ操作言語(DML)ステートメントでのみ適正に処理され、データ定義言語(DDL)ステートメントでは処理されません。
        
          パラメータマーカーは、ステートメントを実行する前に、mysql_bind_param()
          を使用してアプリケーション変数にバインドする必要があります。
        
戻り値
          コンパイルが正常に終了した場合は
          MYSQL_STMT
          構造体へのポインタ。エラーが発生した場合は
          NULL。
        
エラー
              CR_COMMANDS_OUT_OF_SYNC
            
コマンドが正しい順序で実行されなかった。
              CR_OUT_OF_MEMORY
            
メモリが不足していた。
              CR_SERVER_GONE_ERROR
            
MySQL サーバがいなくなった。
              CR_SERVER_LOST
            
クエリの実行中にサーバへの接続が切断された。
              CR_UNKNOWN_ERROR
            
不明なエラーが発生した。
          コンパイルが失敗した場合(mysql_prepare()
          が NULL
          を返した場合)、エラーメッセージは
          mysql_error()
          を呼び出すことによって取得できます。
        
例
          mysql_prepare()
          の使用方法については、項11.1.7.5. 「mysql_execute()」
          の「例」を参照してください。
        
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

