使用しているマシンにPHPがインストールされている場合は、そのためのPHPスクリプトを作成できます。PHPのインストールにMySQL拡張がインストールされている必要があります。
次のように、コマンドラインからPHPインタープリターを呼び出すことができます。
php --php-ini path/to/php.ini your-script.php
--php-ini
MySQL拡張を有効にする独自のPHP設定を使用する必要がある場合があるため、スイッチを含めています。PHP 5.3.0以降では、この拡張機能はデフォルトで有効になっているため、構成を使用して有効にする必要はありません。
次に、通常のPHPスクリプトと同じようにエクスポートスクリプトを記述できます。
<?php
#mysql_connect("localhost", "username", "password") or die(mysql_error());
mysql_select_db("mydb") or die(mysql_error());
$result = mysql_query("SELECT * FROM table_with_the_data p WHERE p.type = $typeiwant");
$result || die(mysql_error());
while($row = mysql_fetch_row($result)) {
$comma = false;
foreach ($row as $item) {
# Make it comma separated
if ($comma) {
echo ',';
} else {
$comma = true;
}
# Quote the quotes
$quoted = str_replace("\"", "\"\"", $item);
# Quote the string
echo "\"$quoted\"";
}
echo "\n";
}
?>
この方法の利点は、改行を含むテキストを持つvarcharフィールドとテキストフィールドで問題が発生しないことです。これらのフィールドは正しく引用され、それらの改行は、CSVリーダーによって、レコードの区切り文字ではなく、テキストの一部として解釈されます。これは、後でsedなどで修正するのが難しいものです。
REPLACE()
クエリで使用して、引用符をエスケープすることができます。