Jika ada PHP yang diinstal pada mesin yang Anda gunakan, Anda dapat menulis skrip PHP untuk melakukannya. Diperlukan instalasi PHP agar ekstensi MySQL diinstal.
Anda dapat memanggil juru bahasa PHP dari baris perintah seperti:
php --php-ini path/to/php.ini your-script.php
Saya termasuk --php-ini
saklar, karena Anda mungkin perlu menggunakan konfigurasi PHP Anda sendiri yang memungkinkan ekstensi MySQL. Pada PHP 5.3.0+ ekstensi itu diaktifkan secara default, sehingga tidak perlu lagi menggunakan konfigurasi untuk mengaktifkannya.
Kemudian Anda dapat menulis skrip ekspor seperti skrip PHP biasa:
<?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";
}
?>
Keuntungan dari metode ini adalah, bahwa ia tidak memiliki masalah dengan bidang varchar dan teks, yang memiliki teks yang mengandung baris baru. Bidang-bidang tersebut dikutip dengan benar dan baris-baris baru di dalamnya akan ditafsirkan oleh pembaca CSV sebagai bagian dari teks, bukan catatan pemisah. Itu adalah sesuatu yang sulit untuk diperbaiki setelahnya dengan sed atau lebih.
REPLACE()
dalam kueri Anda untuk mendapatkan penawaran.