Kullandığınız makinede yüklü PHP varsa, bunu yapmak için bir PHP betiği yazabilirsiniz. PHP kurulumunun MySQL uzantısının kurulu olmasını gerektirir.
PHP yorumlayıcısını komut satırından şöyle çağırabilirsiniz:
php --php-ini path/to/php.ini your-script.php
--php-ini
Anahtarı dahil ediyorum , çünkü MySQL uzantısını etkinleştiren kendi PHP yapılandırmanızı kullanmanız gerekebilir. PHP 5.3.0+ sürümünde bu uzantı varsayılan olarak etkindir, bu nedenle yapılandırmayı etkinleştirmek için artık gerekli değildir.
Daha sonra dışa aktarma komut dosyanızı herhangi bir normal PHP komut dosyası gibi yazabilirsiniz:
<?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";
}
?>
Bu yöntemin avantajı, yeni satırlar içeren metin içeren varchar ve metin alanlarıyla ilgili herhangi bir sorunu olmamasıdır. Bu alanlar doğru şekilde alıntılanır ve içindeki yeni satırlar, CSV okuyucu tarafından ayırıcıları değil metnin bir parçası olarak yorumlanır. Bu daha sonra sed ya da benzeri ile düzeltilmesi zor bir şeydir .
REPLACE()
Tırnak işaretleri kaçmak için sorgunuzda kullanabilirsiniz .