mysqli_stmt::send_long_data

mysqli_stmt_send_long_data

データをブロックで送信する

説明

オブジェクト指向型

public bool mysqli_stmt::send_long_data(int $param_num, string $data)

手続き型

bool mysqli_stmt_send_long_data(mysqli_stmt $statement, int $param_num, string $data)

パラメータのデータを、サーバーに分割して送信します。例えば blob のサイズが max_allowed_packet を越えてしまう場合などに使用します。 この関数は、カラムに文字やバイナリのデータを送信するために複数回 コールすることが可能です。そのカラムの型は TEXT あるいは BLOB である 必要があります。

パラメータ

stmt

手続き型のみ: mysqli_stmt_init が返す mysqli_stmt オブジェクト。

param_num

データに関連付けるパラメータを示します。 パラメータの番号は 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
  • mysqli_stmt_bind_param