Ваш оператор вставки выглядит не так. Попытка вставить в $ dbNewDB ваши значения из dbNewDB. Вы должны обратиться к старой базе данных. Ниже я строю два жала для вставки. $ string1 = '(col1name, col2name ...,)' $ string2 = '(val1-1, val1-2, ...), (val2-1, val2-2, ...), ...' для "INSERT INTO table $ string1 VALUES $ string2"
//Insert data
$sql2 = "SELECT * FROM " . $row[0];
$r = mysql_query($sql, $bConnect);
$string1 = '('; $arr = array();
while ($irow = mysql_fetch_assoc($r)) {$arr[] = $irow;}
foreach($irow as $k=>$v)
{
$string1 .= "$k,";
}
$string1 = substr($string1, 0, -1) //lose last comma
$string1 .= ')';
$string2 = array_reduce($f, $arr);
$string2 = substr($string2, 0, -1) //lose last comma
$sqlStatement = "INSERT INTO " . $dbNewDB . "." . $row[0] . " $string1 VALUES $string2";
echo "$sqlStatement [" . __METHOD__ . "]";
mysql_query($sqlStatement,$dbNewConnect)or die("Table copy failed: ".mysql_error());
echo "$row[0] copy done. [" . __METHOD__ . "]";
объявить $ f в другом месте
$f = function($b, $x) {$a = ' ('; foreach($x as $v) {$a .= "'$v',";} $a = substr($a, 0, -1); $a .= ')'; return "$b $a,";}