当前位置: 首页> 函数类别大全> mysqli_stmt::send_long_data

mysqli_stmt::send_long_data

(mysqli_stmt_send_long_data)以块为单位发送数据
名称:mysqli_stmt::send_long_data
分类:MySQLi
所属语言:php
一句话介绍: 向预处理语句中的绑定参数发送大量数据

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()函数,每次发送一个参数的数据。

同类函数
热门文章