Сподіваюся, це комусь допоможе ... Ось невеликий PHP-скрипт, який я написав на випадок, якщо вам потрібно скопіювати деякі стовпці, але не інші, та / або стовпці не в однаковому порядку в обох таблицях. Поки стовпці називаються однаково, це буде працювати. Отже, якщо таблиця A має [ідентифікатор користувача, дескриптор, щось], а таблиця B має [ідентифікатор користувача, дескриптор, позначку часу], тоді ви б "ВИБРАТИ userID, handle, NOW () як мітку часу З таблиці A", тоді отримаєте результат цього, і передайте результат як перший параметр цій функції ($ z). $ toTable - це рядок для таблиці, в яку ви копіюєте, а $ link_identifier - це база даних, в яку ви копіюєте. Це порівняно швидко для невеликих наборів даних. Не пропонується намагатися переміщати одночасно більше кількох тисяч рядків у виробничій обстановці.
function mysql_multirow_copy($z,$toTable,$link_identifier) {
$fields = "";
for ($i=0;$i<mysql_num_fields($z);$i++) {
if ($i>0) {
$fields .= ",";
}
$fields .= mysql_field_name($z,$i);
}
$q = "INSERT INTO $toTable ($fields) VALUES";
$c = 0;
mysql_data_seek($z,0); //critical reset in case $z has been parsed beforehand. !
while ($a = mysql_fetch_assoc($z)) {
foreach ($a as $key=>$as) {
$a[$key] = addslashes($as);
next ($a);
}
if ($c>0) {
$q .= ",";
}
$q .= "('".implode(array_values($a),"','")."')";
$c++;
}
$q .= ";";
$z = mysql_query($q,$link_identifier);
return ($q);
}