0

我想插入一个大约 25mb 的文件。在我的服务器中 max_allowed_pa​​cket 值为 16mb,我无法更改服务器配置。如何将文件插入 mysql blob?我在本地主机中使用了此代码。它工作正常。但这在我的在线服务器中不起作用。

$mysqli = new mysqli("localhost", "root", "", "test");

$stmt = $mysqli->prepare("INSERT INTO FILES_DATA (FileData) VALUES (?)"); 
$null = NULL; 
$stmt->bind_param("b", $null); 
$fp = fopen("Wildlife.wmv", "r");

echo('<br>fp='.$fp); 
while (!feof($fp)) { 
    $stmt->send_long_data(0, fread($fp, 8192)); 
} 
fclose($fp); 
$stmt->execute(); 

创建表的Sql:

CREATE TABLE IF NOT EXISTS 'files_data' ( 
    'Id' int(11) NOT NULL AUTO_INCREMENT, 
    'FileData' longblob, 
    PRIMARY KEY ('Id') 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

提前致谢。

4

1 回答 1

0

一种解决方法 - 使用一些 BLOB 字段来存储文件。将您的 25MB 文件拆分为两个字节数组:16MB + 9MB,并使用 HEX 表示法将它们插入表中,例如 -

INSERT INTO table files(id, data1, data2) VALUES(1, 0x616263..., 0x78797A...)
于 2012-05-30T06:35:36.320 回答