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