mysqli_stmt::send_long_data
mysqli_stmt_send_long_data
(PHP 5, PHP 7)
mysqli_stmt::send_long_data -- mysqli_stmt_send_long_data — データをブロックで送信する
説明
オブジェクト指向型
public mysqli_stmt::send_long_data
( int $param_nr
, string $data
) : bool
手続き型
mysqli_stmt_send_long_data
( mysqli_stmt $stmt
, int $param_nr
, string $data
) : bool
パラメータのデータを、サーバーに分割して送信します。例えば blob のサイズが
max_allowed_packet
を越えてしまう場合などに使用します。
この関数は、カラムに文字やバイナリのデータを送信するために複数回
コールすることが可能です。そのカラムの型は TEXT あるいは BLOB である
必要があります。
パラメータ
stmt
- 手続き型のみ: mysqli_stmt_init() が返すステートメント ID。
param_nr
- データに関連付けるパラメータを示します。 パラメータの番号は 0 から始まります。
data
- 送信するデータを含む文字列。
返り値
成功した場合に true
を、失敗した場合に false
を返します。
例
例1 オブジェクト指向型
<?php$stmt = $mysqli->prepare("INSERT INTO messages (message) VALUES (?)");$null = NULL;$stmt->bind_param("b", $null);$fp = fopen("messages.txt", "r");while (!feof($fp)) { $stmt->send_long_data(0, fread($fp, 8192));}fclose($fp);$stmt->execute();?>
参考
- mysqli_prepare() - 実行するための SQL ステートメントを準備する
- mysqli_stmt_bind_param() - プリペアドステートメントのパラメータに変数をバインドする