2013-02-01 33 views
1

G'day我只是想知道如何將圖像插入數據庫。我創建了一個已經存在每列數據的表格,並添加了一個「圖片」列,我如何將圖片插入到特定的行中?MySQL Image insert

+0

您將使用哪種語言? –

+0

我正在使用SQL。 – JamsHack

+1

在繼續之前閱讀本文:http://stackoverflow.com/questions/5613898/what-about-storing-images-in-sql-server – wcraft

回答

2

你做不是想這樣做。而是使用文件系統來實現它的優點 - 存儲數據。擁有圖像的名稱以及它們與SQL表中的內容相對應的名稱。

0

試試這個代碼:

CREATE TABLE Employees 
(
    Id int, 
    Name varchar(50) not null, 
    Photo varbinary(max) not null 
) 


INSERT INTO Employees (Id, Name, Photo) 
    SELECT 10, 'John', BulkColumn 
    FROM Openrowset(Bulk 'C:\photo.bmp', Single_Blob) as EmployeePicture 
+0

在FROM之後寫什麼? – JamsHack

+0

'OPENROWSET(BULK N'C:\ Image \ image.jpg',SINGLE_BLOB)AS import'。所有的3行可以在一行......你只需要改變圖像路徑'C:\ Image \ image.jpg' –

+0

#1064 - 你的SQL語法有錯誤;檢查對應於您的MySQL服務器版本的手冊,以便在第3行的'(BULK N'E:\ TheClash.jpg',SINGLE_BLOB)'附近使用正確的語法' – JamsHack

0

這裏的PHP方式:

$fileblob =file_get_contents("path/to/imagefile"); 
$cleandata=addslashes($fileblob); 


$sql="update mytable set blobcolumn='$cleandata' where pkcol=$mypkvalue"; 

mysql_query($sql); 
0

HD1好點;文件系統在處理圖像對象方面更好 - 用戶檢索和緩存對象的速度會更快。

但是,要回答它,你需要將它存儲在一個blob ddatatype中。 (二進制大對象)。請記住在將其導入數據庫之前將其轉義,並在檢索時將其解除。

INSERT INTO表(blobcolumn)VALUES(... blob contents here ...);