ScotlandPHP 2016

mysqli_stmt::send_long_data

mysqli_stmt_send_long_data

(PHP 5, PHP 7)

mysqli_stmt::send_long_data -- mysqli_stmt_send_long_dataSendet Daten blockweise

Beschreibung

Objektorientierter Stil

bool mysqli_stmt::send_long_data ( int $param_nr , string $data )

Prozeduraler Stil

bool mysqli_stmt_send_long_data ( mysqli_stmt $stmt , int $param_nr , string $data )

Damit werden Parameter blockweise zum Datenbank-Server geschickt, z. B. wenn die Größe eines BLOBs die Größe max_allowed_packet überschreitet. Die Funktion kann mehrmals aufgerufen werden, um Teile von Textdaten oder Binärdaten für eine Tabellenspalte zu verschicken. Die Tabellenspalte muss dabei den Typ TEXT oder BLOB haben.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

param_nr

Zeigt an, für welchen Parameter Daten geschickt werden. Die Parameter sind von null an durchnummeriert.

data

Eine Zeichenkette, die die Daten enthält, die gesendet werden sollen.

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Beispiele

Beispiel #1 Objektorientierter Stil

<?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(0fread($fp8192));
}
fclose($fp);
$stmt->execute();
?>

Siehe auch

add a note add a note

User Contributed Notes 2 notes

up
1
Gustavo Narea
10 years ago
Just in case:

'max_allowed_packet' is a MySQL variable; it is not a PHP function/variable/constant.

Further info: http://dev.mysql.com/doc/refman/4.1/en/packet-too-large.html

HTH.
up
-1
lussnig at smcc dot de
10 years ago
send_long_data() these function is normaly used to store Data in Binary blob field. But if the table is UTF8 and connection charset it does not expect binary data (for example images) it take utf8 Data.
This mean you have to do utf8_encode bevore sending binary data.
To Top