mysql:8806
From: ML account <ML account <ml@xxxxxxxxxx>>
Date: Tue, 17 Feb 2004 13:44:33 +0900
Subject: [mysql 08806] Re: C 言語でデータベースにラージオブジェクトを挿入する方法
こんにちは。 Kazuhiro Yoshida <moriq@xxxxxxxxxx>さんの <200402170312.AA03223@xxxxxxxxxx> "[mysql 08805] Re: C 言語でデータベースにラージオブジェクトを挿入する方法" > 結局SQLに詰め込むのだから言語の違いはあんまり関係ないのでは。 > BLOBといっても普通にINSERTすればいいですよね。 > http://www.mysql.gr.jp/jpdoc/4.0/manual.ja_toc.html#mysql_real_escape_string > mysql_real_escape_string() > mysql_real_query() > 辺りを使えばできると思います。 ですね。 SQL文はテキストですから、バイナリデータの場合には、何らかの方法でテキ ストにエスケープ/エンコードする必要があるでしょう。 mysql_real_escape_string()が SQL文レベルのエスケープ方法と言えるでしょう。 他にバイナリデータ自体を BASE64等でテキストにエンコードするやCSV等のテキ ストデータを使う方法もある訳です。 本来テキストであるSQL文にバイナリデータを押し込もうとする事から、エス ケープ/エンコードという作業が必要になります。ならば、バイナリデータはファ イルで保管し、DBにはそのインデックス(パスやURL)を入れる方法もある訳で、 ボク的にはこちらをお勧めしたいです。 更に言えば、[mysql 08804]中の「登録しようとしているバイナリファイルは、 数値データの入ったバイナリファイルです」が気に掛かります。データが数値で あるならば、BLOBに入れなければならない必然性はあまり無いでしょう。設計を 見直されては如何でしょうか。 閑話休題。新海さんの「あんまりC言語ではMySQLって使わないんでしょうか?」 に付いては、多分にYESですね。速度を気にしない場合や、プログラムでの処理 の割合が小さいものに関しては、Perl等のいわゆる簡易言語で行った方が簡単で す。特に Web絡みとなるとPHPとなる傾向もありますし。Java(JDBC)はアプロー チ的にはCの場合と大きく異なり、簡易言語に近いものがある感じがしています。 MySQLのCライブラリ、あるいはOracleのOCIを使って、Cでコードが組める人は 少数なのではないでしょうか。特に若い人が多い場合には、 100人規模のプロジェ クトで2人居れば御の字だと思います。 松枝知直 <tomom@xxxxxxxxxx> http://www.argus.ne.jp/~tomom/
8804 2004-02-17 11:30 [新海 雄一 <shinkai@] C 言語でデータベースにラージオブジェクトを挿入する方法 8805 2004-02-17 12:12 ┗[Kazuhiro Yoshida <mo] -> 8806 2004-02-17 13:44 ┗[ML account <ml@xxxxx] 8807 2004-02-17 15:54 ┗[新海 雄一 <shinkai@]