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.
mysqli_stmt::send_long_data
mysqli_stmt_send_long_data
(PHP 5)
mysqli_stmt::send_long_data -- mysqli_stmt_send_long_data — Enviar datos en bloques
Descripción
Estilo orientado a objetos
$param_nr
, string $data
)Estilo por procedimientos
Permite el envío de datos de parámetros en piezas al servidor (o trozos), p.ej. si el tamaño de un blob excede el tamaño de max_allowed_packet. Esta función puede llamarse múltiples veces para enviar las partes de un valor de datos de carácter o binarios de una columna, la cual debe ser del tipo de datos TEXT o BLOB.
Parámetros
-
stmt -
Sólo estilo por procediminetos: Un identificador de declaraciones devuelto por mysqli_stmt_init().
-
param_nr -
Indica qué parámetro asociar con los datos. Los parámetros son numerados comenzando por el 0.
-
data -
Una cadena que contiene los datos a enviar.
Valores devueltos
Devuelve TRUE en caso de éxito o FALSE en caso de error.
Ejemplos
Ejemplo #1 Estilo orientado a objetos
<?php
$sentencia = $mysqli->prepare("INSERT INTO messages (message) VALUES (?)");
$null = NULL;
$sentencia->bind_param("b", $null);
$fp = fopen("messages.txt", "r");
while (!feof($fp)) {
$sentencia->send_long_data(0, fread($fp, 8192));
}
fclose($fp);
$sentencia->execute();
?>
Ver también
- mysqli_prepare() - Prepara una sentencia SQL para su ejecución
- mysqli_stmt_bind_param() - Agrega variables a una sentencia preparada como parámetros
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.
