Monday, 15 August 2011

mysql - To create a clone of database table in php script -



mysql - To create a clone of database table in php script -

i have create clone of database table. worked wordpress database , want create clone of wp-options table. how can create clone of particular table in database. found code

set_time_limit(0); $username = 'xxxxxx'; $password = 'yyyyyy'; $hostname = 'zzzzzz'; $database = 'aaaaaa'; seek { $pdo = new pdo("mysql:host={$hostname};dbname={$database}", $username, $password); } catch(pdoexception $e) { die("could not connect database\n"); } echo '<pre>'; $stmt1 = $pdo->query('show tables', pdo::fetch_num); foreach($stmt1->fetchall() $row) { $stmt2 = $pdo->query("show create table `$row[0]`", pdo::fetch_assoc); $table = $stmt2->fetch(); echo "{$table['create table']};\n\n"; } echo '</pre>';

but cant understand how can database in folder path given.

i had same issue before , googling of couple of hours end below code.

hope help.

well geeks sorry using mysql_** deprecated.

<?php $dbiuser = 'someuser'; $dbipass = 'thepassword'; $newuser = 'someloser'; $newpass = 'thepassword'; $oldserver = 'my crappy old mysql server domain'; $newserver = 'localhost'; if ($argv[0] > " ") { $dbname = $argv[1]; echo "starting re-create of $argv[1] database.\n"; $dbpre = mysql_connect($oldserver, $dbiuser, $dbipass); mysql_select_db($dbname, $dbpre); $sql = "show tables $dbname"; echo $sql."\n"; $result = mysql_query($sql); if (!$result) { echo "db error, not list tables\n"; echo 'mysql error: ' . mysql_error(); exit; } $dbtbl = mysql_connect($oldserver, $dbiuser, $dbipass); mysql_select_db($dbname, $dbpre); $dbnew = mysql_connect($newserver, $newuser, $newpass); mysql_select_db("mysql", $dbnew); $res2 = mysql_query("create database if not exists ".$dbname,$dbnew); if (!$res2) { echo "db error, not create database\n"; echo 'mysql error: ' . mysql_error(); exit; } mysql_select_db($dbname, $dbnew); if($result === false) { die(mysql_error()); } $f = fopen($dbname.'.log', 'w'); fwrite($f, "copy tables in database $dbname on server $oldserver new database on server $newserver.\n\n"); while ($row = mysql_fetch_row($result)) { echo "table: {$row[0]}\n"; fwrite($f, "table ".$row[0]."\n"); $tableinfo = mysql_fetch_array(mysql_query("show create table $row[0] ",$dbtbl)); $createsyntax = "create table if not exists "; $createsyntax .= substr($tableinfo[1], 13); mysql_query(" $createsyntax ",$dbnew); $res = mysql_query("select * $row[0] ",$dbpre); // select rows $oldcnt = mysql_num_rows($res); echo "count: ".$oldcnt." - "; $errors = 0; while ($roz = mysql_fetch_array($res, mysql_assoc) ) { $query = "insert $dbname.$row[0] (".implode(", ",array_keys($roz)).") values ("; $cnt = 0; foreach (array_values($roz) $value) { if ($cnt == 0) { $cnt++; } else { $query .= ","; } $query .= "'"; $query .= mysql_real_escape_string($value); $query .= "'"; } $query .= ")"; $look = mysql_query($query,$dbnew); if ($look === false) { // write insert log on error $errors = $errors + 1; fwrite($f, mysql_error()." - ".$query."\n"); } } $sql = "select count(*) cnt $dbname.$row[0] "; $res = mysql_query($sql, $dbnew); $roz = mysql_fetch_array($res); echo $roz['cnt']." - errors: ".$errors."\n"; fwrite($f, "old record count: ".$oldcnt." - new record count: ".$roz['cnt']." - errors: ".$errors."\n"); fwrite($f,"end table re-create table $row[0].\n\n"); } fclose($f); } else { var_dump($argv); } ?>

php mysql

No comments:

Post a Comment