通州北大青鳥校區(qū):在MYSQL數(shù)據(jù)庫中中如何存取二進(jìn)制文件

北京北大青鳥校區(qū)學(xué)術(shù)部老師講解:在MySQL數(shù)據(jù)庫中,不僅可以存放文字信息,還可以存放圖片、聲音、文件等二進(jìn)制信息。那么在MYSQL數(shù)據(jù)庫中中如何存取二進(jìn)制文件?下面,北京北大青鳥校區(qū)學(xué)術(shù)部老師將以PHP為腳本給大家做一個(gè)介紹:

首先創(chuàng)建測試表testtable

CREATE TABLE testtable ( id INT(5) NOT NULL AUTO_INCREMENT PRIMARY KEY,filename CHAR(255),data LONGBLOB );

將文件存入表中

mysql_connect( localhost, root, password); //連接數(shù)據(jù)庫
mysql_select_db( database); //選定數(shù)據(jù)庫
$filename= //這里填入二進(jìn)制文件名
$data = addslashes(fread(fopen($filename, r), filesize($filename)));//打開文件并規(guī)范化數(shù)據(jù)存入變量$data中
$result=mysql_query( INSERT INTO testtable (filename,data) VALUES ($filename,$data));//數(shù)據(jù)插入到數(shù)據(jù)庫test表中
mysql_close();
?>

從表中取回文件

if($id) {
mysql_connect( localhost, root, password);
mysql_select_db( database);
$filename= //這里填入二進(jìn)制文件名
$query = select data from testtable where filename=$filename;
$result = mysql_query($query);
$data = mysql_result($result,0, data);
?>
這里要注意的是,PHP一般只支持小于2M的文件,如果要存取大于2M的文件,那就要進(jìn)行系統(tǒng)方面的設(shè)置了。 (北京北大青鳥校區(qū)提供)

北大青鳥網(wǎng)上報(bào)名
北大青鳥招生簡章