2009-06-26 7 views
0

私は数千の列とblobの列を持つ数千の行を持つテーブルを持っています。私は、各行を内容としてのblobとファイル名を形成するために使用される整数とともに、独自のファイルとしてダンプしたい。これは一度だけですので、すばやく汚れてもOKです。 1つの制約は、私がこの環境にインストールされたツールをほとんど持っていないので、私が何を使用するかにかかわらず開発コストの一部になるということです。blobの行をMySQLのファイルにダンプする


編集:私は別の箱からC#を使用して終わりました。 a single assemblyと、以下の回答に記載されているコードとほぼ同じ量のコードをダウンロードするだけでした。 PHPでの迅速な

+0

どのような環境、特にOS /ディストリビューションですか? – Svante

+0

私はWinXPとLinuxをSSH avalable経由で持っています – BCS

答えて

1

何か:

<?php 
$connection = mysql_connect("mysqlserver.example.com", "username", "password"); 
mysql_select_db("dbname"); 
$sql = "SELECT `blob_column`, `id` FROM `mytable`"; 
$result = mysql_query($sql); 
while ($row = mysql_fetch_assoc($result)){ 
    file_put_contents("file" + $row["id"] + ".dat", $row["blob_column"]); 
} 
mysql_close($connection); 

あなたは、おそらくあなたは、MySQLにアクセスする必要がどのような方法でまね何かを行うことができますが、私の知る限り、純粋なSQLでそれを行う方法はありません。

CLSQLを使用してCommon Lispでは
+0

素敵でシンプルな+1、PHPをインストールしてMySQLサポートを設定するのはどれくらい難しいですか? – BCS

+0

@BCS:ほとんどのサーバー(特にUNIX)にはPHPがインストールされています。 SSH/telnetアクセスがある場合は、コマンドプロンプトでphp -vと入力して、使用可能かどうかを調べることができます。 PHPはMySQLサポートでもコンパイルされているはずです。あなたはそれを持っていない場合は、Apache Friends XAMPPのようなパッケージをインストールすることができますが、それはあまりにもあなたの使用のために膨らんでいる可能性があります(それはApache、MySQL、PHPMyAdmin、および他のものもたくさんあります)。 – MiffTheFox

+0

ああ、もう1つ、あなたのDBにも接続する必要があります、私はここにもそのコードを追加するつもりです。 – MiffTheFox

1

、次のようなものが動作するはずです(未テスト、MySQLのは、現時点ではインストールされていない):

(require 'clsql) 
(require 'clsql-mysql) 

(clsql:connect (host db user password port) :database-type :mysql) 

(clsql:do-query ((col1 col2 blob) "select col1,col2,blob from blobtable") 
    (with-open-file (outfile (format nil "~a-~a" col1 col2) 
          :direction :output 
          :element-type 'byte) 
    (write-sequence blob outfile))) 

あなたはデシベルなど、ホストに記入しなければなりません(ポートはオプションです)、クエリを調整します。

+0

MiffTheFox – BCS

関連する問題