2013-02-01 29 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 ...);