PHP复制mysql模式和数据

标签 php mysql schema data-migration

我正在使用一个小脚本来自动在服务器之间进行架构传输,但现在我需要修改它以包含数据。我不太擅长 PHP,所以我请求你的帮助。 这是我到目前为止所拥有的(部分是我从其他来源获得的,而不是我的):

/<strong><em>*</em>**<em>*</em>**<em>*</em>**<em>*</em>*</strong> GRAB OLD SCHEMA <strong><em>*</em>**<em>*</em>**<em>*</em>**<em>*</em>*</strong>/ $db1 = mysql_connect($DB_SRC_HOST,$DB_SRC_USER,$DB_SRC_PASS) or die(mysql_error()); mysql_select_db($DB_SRC_NAME, $db1) or die(mysql_error());

<pre><code>$result = mysql_query("SHOW TABLES;",$db1) or die(mysql_error()); $buf="set foreign_key_checks = 0;\n"; $constraints=''; while($row = mysql_fetch_array($result)) { $result2 = mysql_query("SHOW CREATE TABLE ".$row[0].";",$db1) or die(mysql_error()); $res = mysql_fetch_array($result2); if(preg_match("/[ ]*CONSTRAINT[ ]+.*\n/",$res[1],$matches)) { $res[1] = preg_replace("/,\n[ ]*CONSTRAINT[ ]+.*\n/","\n",$res[1]); $constraints.="ALTER TABLE ".$row[0]." ADD ".trim($matches[0]).";\n"; } $buf.=$res[1].";\n"; } $buf.=$constraints; $buf.="set foreign_key_checks = 1"; /**************** CREATE NEW DB WITH OLD SCHEMA ****************/ $db2 = mysql_connect($DB_DST_HOST,$DB_DST_USER,$DB_DST_PASS) or die(mysql_error()); $sql = 'CREATE DATABASE '.$DB_DST_NAME; if(!mysql_query($sql, $db2)) die(mysql_error()); mysql_select_db($DB_DST_NAME, $db2) or die(mysql_error()); $queries = explode(';',$buf); foreach($queries as $query) if(!mysql_query($query, $db2)) die(mysql_error()); </code></pre>

如何修改现有代码以包含数据?

谢谢!

最佳答案

如果您需要传输数据/和/架构,为什么不执行 mysqldump,然后将整个内容读回呢?这与脚本应该执行的操作有何关系?

关于PHP复制mysql模式和数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22348304/

相关文章:

php - 通过多个函数运行一个变量

php - 在模式中单击按钮后重定向到另一个页面

mysql - 更改 MySQL 表中的值会出现语法错误

java - 从 DTD 生成 XML 绑定(bind)代码的最佳方法是什么?

java - Hibernate @SQLDelete sql 不添加模式

php - Zend 框架中的模块自动加载器

php - 如何在不加载整个页面的情况下加载单个 Div 并显示加载状态?

MySQL 连接并选择随机字段

mysql - MYSQL PRIMARY CHAR KEY 的最大最佳大小是多少

neo4j - 在 Neo4J 中存储历史交易数据的模式?