web-dev-qa-db-ja.com

mysqlデータベース(テーブル)に画像を挿入する方法は?

次のような表に画像を挿入したい

 CREATE TABLE XX_SAMPLE(ID INT
                       ,IMAGE BLOB);

上の表に画像を挿入する方法を手伝ってください。

17
Viru

以下のコードを試してください

INSERT INTO xx_BLOB(ID,IMAGE) VALUES(1,LOAD_FILE('E:/Images/jack.jpg'));
30
Madhav

LOAD_FILE を次のように使用する必要があります。

LOAD_FILE('/some/path/image.png')
9

このようなものを試すことができます。

CREATE TABLE 'sample'.'picture' ( 
'idpicture' INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, 
'caption' VARCHAR(45) NOT NULL, 
'img' LONGBLOB NOT NULL, 
 PRIMARY KEY('idpicture')) TYPE = InnoDB;

またはチュートリアルおよびサンプルについては、以下のリンクを参照してください。役立つ場合があります。

http://forums.mysql.com/read.php?20,17671,27914

http://mrarrowhead.com/index.php?page=store_images_mysql_php.php

http://www.hockinson.com/programmer-web-designer-denver-co-usa.php?s=47

2
x'tian

この質問には3つの答えがあります。

  1. ユーザーエクスペリエンス UXのベストプラクティスに反して、文字列でBLOBおよびCLOBデータ型を使用し、SQLデータベースからバイナリデータを取得するため、画像のURLを保存する手法を使用することをお勧めします(またはデータベース内の任意のバイナリファイル)。このURLは、ユーザーアプリケーションがこのバイナリファイルを取得して使用するのに役立ちます。

  2. 第二に、BLOBおよびCLOBデータ型は多くのSQLバージョンでのみ使用できるため、一部のバージョンではLOAD_FILEなどの関数やデータ型自体が欠落する可能性があります。

  3. 3番目はBLOBを使用しないでくださいORCLOB。URLを保存し、ユーザーアプリケーションがプロジェクトディレクトリ内のフォルダーからバイナリファイルにアクセスできるようにします。

1
samuel owino

次のクエリを使用すると、

INSERT INTO xx_BLOB(ID,IMAGE) 
VALUES(1,LOAD_FILE('E:/Images/xxx.png'));

エラー:そのような関数はありません:LOAD_FILE

0
karthik surya

上記のすべてのソリューションを試してみましたが失敗しました。DBにnullファイルを追加しただけです。

ただし、画像を移動することで完了させることができました(fileName.jpg)最初に下のフォルダーにファイル(私の場合)C:\ProgramData\MySQL\MySQL Server 5.7\Uploadsそして、私は以下のコマンドを実行し、それは私のために動作します、

INSERT INTO xx_BLOB(ID,IMAGE) VALUES(1,LOAD_FILE('C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/fileName.jpg'));

お役に立てれば。

0
tk_