English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
mysqli_stmt_send_long_data()関数はデータをブロックごとに送信します。
テーブルの某一列がBLOBタイプのTEXTの場合、このmysqli_stmt_send_long_data()この関数はデータをブロックごとにこの列に送信するために使用されます。
この関数を使用して接続を閉じることはできません。持続的な接続。
mysqli_stmt_send_long_data($stmt);
番号 | パラメータ及び説明 |
---|---|
1 | stmt(必須) これは準備された文のオブジェクトを示します。 |
2 | param_nr(必須) これはデータを関連付ける必要があるパラメータを示す整数値です。 |
3 | data(必須) これは送信するデータを表す文字列値です。 |
PHP mysqli_stmt_send_long_data()関数はブール値を返し、成功時はtrue、失敗時はfalse。
この関数は最初にPHPバージョン5で導入され、すべての上位バージョンで使用できます。
以下の例では、mysqli_stmt_send_long_data()関数の使用法(プロセス指向スタイル)-
<?php //接続を確立 $con = mysqli_connect("localhost", "root", "password", "mydb"); //テーブルを作成 mysqli_query($con, "CREATE TABLE test(message BLOB)"); print("テーブルを作成 \n"); //データを挿入 $stmt = mysqli_prepare($con, "INSERT INTO test values(?)"); //値をパラメータマークにバインド mysqli_stmt_bind_param($stmt, "b", $txt); $txt = NULL; $data = "This is sample data"; mysqli_stmt_send_long_data($stmt, 0, $data); print("データを挿入"); //ステートメントを実行 mysqli_stmt_execute($stmt); //ステートメントを終了 mysqli_stmt_close($stmt); //接続を閉じる mysqli_close($con); ?>
結果を出力
テーブルを作成 データを挿入
上記のプログラムを実行した後、テスト表の内容は以下の通りです:
mysql> select * from test; +---------------------+ | message | +---------------------+ | これはサンプルデータ | +---------------------+ 1 セット内の行 (0.00 秒)
オブジェクト指向スタイルでは、この関数の構文は以下の通りです$stmt-> send_long_data();。以下はその関数のオブジェクト指向スタイルの例です;
次のように名前が「test」のテーブルがあると仮定します;foo.txtのファイル、「こんにちは 元気ですか wへようこそ」の内容が「Hello how are you welcome to w」3codebox.com”。
<?php //接続を確立 $con = new mysqli("localhost", "root", "password", "mydb"); //テーブルを作成 $con -> query("CREATE TABLE test(message BLOB)"); print("テーブルを作成 \n"); //プレースホルダーを使用して値をテーブルに挿入 $stmt = $con -> prepare("INSERT INTO test values(?)"); //値をパラメータマークにバインド $txt = NULL; $stmt->bind_param("b", $txt); $fp = fopen("foo.txt", "r"); while (!feof($fp)) { $stmt->send_long_data( 0, fread($fp, 8192)); } print("データを挿入"); fclose($fp); //ステートメントを実行 $stmt->execute(); //ステートメントを終了 $stmt->close(); //接続を閉じる $con->close(); ?>
結果を出力
テーブルを作成 データを挿入
上記のプログラムを実行した後、テスト表の内容は以下の通りです:
mysql> select * from test; +---------------------------------------------+ | メッセージ | +---------------------------------------------+ | こんにちは 元気ですか wへようこそ |3codebox.com | +---------------------------------------------+ 1 セット内の行 (0.00 秒)