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 — Отправка данных блоками
Описание
Объектно-ориентированный стиль
$param_nr
, string $data
)Процедурный стиль
Позволяет пересылать данные параметра на сервер частями (или чанками), например, когда размер большого объекта (blob) превышает max_allowed_packet. Эту функцию можно запускать многократно, чтобы переслать части символных или двоичных данных столбца. Данные в столбце должны иметь тип TEXT или BLOB.
Список параметров
-
stmt -
Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().
-
param_nr -
Указывает, с каким параметром связаны данные. Параметры нумеруются с нуля.
-
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() - Привязка переменных к параметрам подготавливаемого запроса
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.
