我正在处理一个需要将文件插入到数据库的系统。
有两种方式可以将 blob 插入到数据库中,我想知道哪一种更好。
第一种方法是获取内容,然后在插入时将内容作为字符串绑定参数:
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
...
$prep_stmt = "INSERT INTO dokumenty (name, size, type, content, autor, poznamka) VALUES (?, ?, ?, ?, ?, ?)";
$stmt = $mysqli->prepare($prep_stmt);
$stmt->bind_param('sissis',$fileName,$fileSize,$fileType,$content,$user_id,$poznamka );
另一种方法是像这样使用send_long_data:
$content = NULL;
...
$prep_stmt = "INSERT INTO dokumenty (name, size, type, content, autor, poznamka) VALUES (?, ?, ?, ?, ?, ?)";
$stmt = $mysqli->prepare($prep_stmt);
$stmt->bind_param('sisbis',$fileName,$fileSize,$fileType,$content,$user_id,$poznamka );
$stmt->send_long_data(3, file_get_contents($tmpName));
我的问题是:两种方式都可以使用,哪种更好?