MySQLi_STMT
在线手册:中文 英文
PHP手册

mysqli_stmt::send_long_data

mysqli_stmt_send_long_data

(PHP 5)

mysqli_stmt::send_long_data -- mysqli_stmt_send_long_dataSend data in blocks

说明

面向对象风格

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

过程化风格

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

Allows to send parameter data to the server in pieces (or chunks), e.g. if the size of a blob exceeds the size of max_allowed_packet. This function can be called multiple times to send the parts of a character or binary data value for a column, which must be one of the TEXT or BLOB datatypes.

参数

stmt

仅以过程化样式:由 mysqli_stmt_init() 返回的 statement 标识。

param_nr

Indicates which parameter to associate the data with. Parameters are numbered beginning with 0.

data

A string containing data to be sent.

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE.

范例

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

参见


MySQLi_STMT
在线手册:中文 英文
PHP手册
PHP手册 - N: Send data in blocks

用户评论:

Gustavo Narea (17-May-2006 03:00)

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.

lussnig at smcc dot de (26-Oct-2005 03:31)

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.