プリペアドステートメントの振る舞いを変更する

# mysqli_stmt::attr_set

# mysqli_stmt_attr_set

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::attr_set -- mysqli_stmt_attr_set — プリペアドステートメントの振る舞いを変更する

### 説明

オブジェクト指向型

public function mysqli_stmt::attr_set(int `$attribute`, int `$value`): bool

手続き型

function mysqli_stmt_attr_set(mysqli_stmt `$statement`, int `$attribute`, int `$value`): bool

プリペアドステートメントの振る舞いを変更します。 複数の属性を設定するには、この関数を複数回コールします。

### パラメータ

`stmt`
  手続き型のみ: mysqli_stmt_init() が返す mysqli_stmt オブジェクト。
`attribute`

  設定したい属性。次のいずれかの値となります。

  属性の値
  文字 | 説明
  --- | ---
  MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH | `true` に設定すると、mysqli_stmt_store_result() は メタデータ `MYSQL_FIELD->max_length` の値を上書きします。
  MYSQLI_STMT_ATTR_CURSOR_TYPE | mysqli_stmt_execute() が起動された際にステートメントをオープンするためのカーソル型。 `value` は、`MYSQLI_CURSOR_TYPE_NO_CURSOR` (デフォルト) あるいは `MYSQLI_CURSOR_TYPE_READ_ONLY` となります。
  MYSQLI_STMT_ATTR_PREFETCH_ROWS | カーソルの使用時にサーバーからいちどに取得する行数。 `value` に指定できる値の範囲は 1 から unsigned long の最大値までで、デフォルトは 1 です。 PHP 8.4.0 で削除されました。

  `MYSQLI_STMT_ATTR_CURSOR_TYPE` オプションで `MYSQLI_CURSOR_TYPE_READ_ONLY` を使用すると、 mysqli_stmt_execute() を起動した際にそのステートメント用のカーソルをオープンします。 以前に mysqli_stmt_execute() をコールした際にオープンしたカーソルが残っている場合は、 それを閉じてから新しいカーソルをオープンします。また mysqli_stmt_reset() も、オープンしているカーソルをすべて閉じてからステートメント再実行の準備をします。 mysqli_stmt_free_result() は、オープンしているカーソルをすべて閉じます。

  プリペアドステートメント用のカーソルをオープンするのなら mysqli_stmt_store_result() は不要です。

`value`

  属性に割り当てるモード。

### 戻り値

成功した場合に `true` を、失敗した場合に `false` を返します。

### エラー / 例外

mysqli のエラー報告 (`MYSQLI_REPORT_ERROR`) が有効になっており、かつ要求された操作が失敗した場合は、警告が発生します。さらに、エラー報告のモードが `MYSQLI_REPORT_STRICT` に設定されていた場合は、mysqli_sql_exception が代わりにスローされます。

### 参考

- » Connector/MySQL mysql_stmt_attr_set()

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open