Just in case:
'max_allowed_package' 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 — Send data in blocks
설명
Object oriented style (method)
bool mysqli_stmt::send_long_data
( int $param_nr
, string $data
)
Procedural style:
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 Object oriented style
<?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() - Prepare a SQL statement for execution
- mysqli_stmt_bind_param() - Binds variables to a prepared statement as parameters
mysqli_stmt::send_long_data
Gustavo Narea
17-May-2006 02:00
17-May-2006 02:00
lussnig at smcc dot de
26-Oct-2005 02:31
26-Oct-2005 02: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.
