mysqli_stmt::attr_set

mysqli_stmt_attr_set

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

説明

オブジェクト指向型

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

手続き型

bool mysqli_stmt_attr_set(mysqli_stmt $statement, int $attribute, int $value)

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

パラメータ

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 が代わりにスローされます。