Bir SQL deyimi döndürür MySQL beyanı?

6 Cevap php

Ben bir uzak sunucuda bir tablonun bir dökümü yapmak gerekir, ama ben doğrudan sunucuya erişemez. Ben sadece erişim PHP geçer.

MySQL bir dönecekleri bazı yolu var mı

INSERT INTO `table_name` (`field1`, `field2`) VALUES ('a', 'b'), ('c', 'd')

mysqldump ne dönecektir gibi deyimi,?

Ben phpMyAdmin erişimi yok ve ben tercihen exec, system veya passthru kullanmak istemiyorum.

Başka ihracat yöntem için this question bakın

6 Cevap

Bu kod snippit iyi çalışması gerekir:

http://snipplr.com/view/173/mysql-dump/

Eğer sunucu üzerinde php-script kullanabilirsiniz varsa tavsiye ederim phpmyadmin. Sonra web arayüzünden yapabilirsiniz.

Sen PHPMyAdmin, bu MySQL yönetim aracı tabanlı bir php kontrol etmelisiniz. Bu yedekleme ve veritabanı için kurtarma yanı sıra veritabanı sunucusu için bir 'GUI' desteklemektedir. O çok iyi çalışıyor.

Ben eminim phpMyAdmin olacak do this for you.

Bu

select 'insert into table table_name (field1, field2) values'
       || table_name.field1 || ', ' || table_field2 || ');'
from   table_name

Eğer başlamak gerekir. Db lezzet için dize birleştirme operatörü ile | | değiştirin. Alan1 veya field2 dizeleri iseniz kaçan / alıntı için bazı hile ile gelmek zorunda olacak.

Burada ayrı bir sorgu tabloların çok üreten bir yaklaşımdır. Ayrıca daha verimli dizeleri birleştirmek için çöktüğünü kullanabilirsiniz, ancak bu bir milyon diğer yaklaşımlar ile gelip başlayanlar için daha kolay okunur ve bu türemiştir.

$results = mysql_query("SELECT * FROM table_name"); while($row = mysql_fetch_assoc($results)) {

$query = "INSERT INTO `table_name` ";
$fields = '(';
$values = '('; 

foreach($row as $field=>$value) {
    $fields .= "'".$field."',";
    $values .= "'".mysql_escape_string($value)."',";
}

//drop the last comma off
$fields = substr($fields,0,-1);
$values = substr($values,0,-1);

$query .= $fields . " VALUES " . $values;

//your final result
echo $query;

}

Size başladı alırsa bakın