English | 简体中文 | 繁體中文
查询

mysqli_stmt::send_long_data()函数—用法及示例

「 向预处理语句中的绑定参数发送大量数据 」


mysqli_stmt::send_long_data()函数用于向预处理语句中的绑定参数发送大量数据。它主要用于发送BLOB或TEXT类型的数据,因为这些类型的数据在内存中可能会占用大量空间。

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

参数:

  • $param_nr:参数的索引号,从1开始。
  • $data:要发送的数据。

返回值: 如果成功发送数据,则返回true;否则返回false。

示例: 假设有一个名为"employees"的数据库表,其中有一个BLOB类型的字段"resume",我们希望将一份简历文件保存到该字段中。

// 连接数据库
$mysqli = new mysqli("localhost", "username", "password", "database");

// 准备预处理语句
$stmt = $mysqli->prepare("INSERT INTO employees (resume) VALUES (?)");

// 打开文件并读取数据
$file = fopen("resume.pdf", "rb");
$data = fread($file, filesize("resume.pdf"));
fclose($file);

// 绑定参数并发送数据
$stmt->bind_param("b", $resumeData);
$resumeData = $data;
$stmt->send_long_data(1, $resumeData);

// 执行预处理语句
$stmt->execute();

// 检查是否成功插入数据
if ($stmt->affected_rows > 0) {
    echo "简历插入成功!";
} else {
    echo "插入失败!";
}

// 关闭连接
$stmt->close();
$mysqli->close();

在上面的示例中,我们首先打开并读取了要插入的简历文件,然后将数据绑定到预处理语句中的参数上。接下来,使用send_long_data()函数将数据发送到服务器。最后,执行预处理语句并检查是否成功插入数据。

请注意,send_long_data()函数必须在bind_param()函数之后调用,并且必须在execute()函数之前调用。另外,如果要发送多个参数的大量数据,可以多次调用send_long_data()函数,每次发送一个参数的数据。

补充纠错
热门PHP函数
分享链接