次のような表に画像を挿入したい
CREATE TABLE XX_SAMPLE(ID INT
,IMAGE BLOB);
上の表に画像を挿入する方法を手伝ってください。
以下のコードを試してください
INSERT INTO xx_BLOB(ID,IMAGE) VALUES(1,LOAD_FILE('E:/Images/jack.jpg'));
LOAD_FILE を次のように使用する必要があります。
LOAD_FILE('/some/path/image.png')
このようなものを試すことができます。
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
この質問には3つの答えがあります。
ユーザーエクスペリエンス UXのベストプラクティスに反して、文字列でBLOBおよびCLOBデータ型を使用し、SQLデータベースからバイナリデータを取得するため、画像のURLを保存する手法を使用することをお勧めします(またはデータベース内の任意のバイナリファイル)。このURLは、ユーザーアプリケーションがこのバイナリファイルを取得して使用するのに役立ちます。
第二に、BLOBおよびCLOBデータ型は多くのSQLバージョンでのみ使用できるため、一部のバージョンではLOAD_FILEなどの関数やデータ型自体が欠落する可能性があります。
3番目はBLOBを使用しないでくださいORCLOB。URLを保存し、ユーザーアプリケーションがプロジェクトディレクトリ内のフォルダーからバイナリファイルにアクセスできるようにします。
次のクエリを使用すると、
INSERT INTO xx_BLOB(ID,IMAGE)
VALUES(1,LOAD_FILE('E:/Images/xxx.png'));
エラー:そのような関数はありません:LOAD_FILE
上記のすべてのソリューションを試してみましたが失敗しました。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'));
お役に立てれば。