Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL根据模板数据库创建数据库_Php_Mysql_Database_Postgresql - Fatal编程技术网

Php MySQL根据模板数据库创建数据库

Php MySQL根据模板数据库创建数据库,php,mysql,database,postgresql,Php,Mysql,Database,Postgresql,我正在编写一个PHP应用程序,它需要在添加数据时创建新的数据库。我想要一个简单的方法来指定创建的数据库应该是什么样子(即它们包含哪些表,这些表应该包含哪些索引,…),这是MySql Workbench中当前的EER图,然后我将其转发到服务器上。我不认为PHP代码中很多创建语句都是“好的和简单的”。由PHP应用程序中的某个事件触发,我需要使用指定名称创建一个新数据库,该名称是模板数据库的副本 这差不多是这个问题的重复: 但是这个问题的答案不适合我。 我不想使用mysqldump,因为我无法承担在

我正在编写一个PHP应用程序,它需要在添加数据时创建新的数据库。我想要一个简单的方法来指定创建的数据库应该是什么样子(即它们包含哪些表,这些表应该包含哪些索引,…),这是MySql Workbench中当前的EER图,然后我将其转发到服务器上。我不认为PHP代码中很多创建语句都是“好的和简单的”。由PHP应用程序中的某个事件触发,我需要使用指定名称创建一个新数据库,该名称是模板数据库的副本

这差不多是这个问题的重复:

但是这个问题的答案不适合我。
我不想使用mysqldump,因为我无法承担在服务器上执行shell代码的安全风险,因为必须插入所创建数据库的名称,因此可能容易受到代码注入的攻击。还有。
我也不想用SHOW语句将数据库分割开来,并手动执行CREATE语句将新数据库缝合在一起,因为这样会很快变得很麻烦,而且可能无法捕获模板数据库的所有方面,因此会引入难以发现的bug。我也不确定在引用表之前创建引用表时,该方法处理外键的效果如何

理想情况下,我希望使用一个简单的SQL语句,如
createdatabase?与TemplateDatabase类似(其中?表示某种形式的准备语句中的数据库名称)。不幸的是,MySQL中似乎不存在这种功能
显然,PostgreSQL可以做类似的事情,但我不想仅仅因为一个特性就迁移


如何在满足上述约束条件的同时实现这一点?

如果您的项目是新的,通过正确地管理迁移,您可以将哪些部分用于表架构,哪些部分用于表的数据。复制数据库只是重新运行迁移


如果你的项目存在。您可以创建sql文件,并编写php脚本手动运行。

创建数据库?
您不能绑定表/列,句号。使用安全列表。@Fred ii-请澄清“安全列表”是什么意思?我是否正确理解您应该使用MySQL的迁移功能?如何触发从PHP的迁移,以及如何准确地配置迁移以达到预期效果?我想避免使用SQL文件,因为我的问题中说明了一些原因。解决这个问题应该是一个漫长的过程。但你可以用耐心。创建一个自定义控制台控制器,通过调用“shell_exec('your command to run')”`,触发迁移,并将迁移配置为该控制台控制器内所需的控制效果。