通过 cPanel 使用 PHP 创建 mysql DB 并导入 *.sql 文件
Posted
技术标签:
【中文标题】通过 cPanel 使用 PHP 创建 mysql DB 并导入 *.sql 文件【英文标题】:Create mysql DB with PHP through cPanel and import *.sql file 【发布时间】:2016-01-04 17:09:47 【问题描述】:我想为每个想要注册到我的网络应用程序的用户创建一个数据库。当我尝试这个本地时,一切都完美无缺。用户可以使用他的电子邮件和密码进行注册。创建了一个数据库并导入了一个 import.sql 文件,因此为用户创建的数据库在数据上是空的,但给出了表和 realtioships。
我的主机使用 cPanel 和 phpMyAdmin 创建 DB 和 db-user。我想用 php 来做这个,就像我在本地做的一样。有人知道我是如何完成这项工作的吗?
我已经搜索并尝试了一些东西,但没有什么适合我。
如果可能的话,在 cPanel 上做一些解释就足够了。
【问题讨论】:
不,您不想为每个用户创建单独的数据库。它将创建一个极难维护的应用程序。 为什么维护起来非常困难? @user2182349 如果您决定将来更改数据库架构怎么办?您将不得不修改每个数据库。您将如何管理应用程序 - 例如在用户抱怨无法登录时搜索用户?如果托管公司将您限制为 10 个数据库怎么办?最后,没有人这样做,因为它没有任何意义。 @user2182349 你是对的,没想到这一点......你现在会推荐我什么? 用不同的表创建一个数据库。其中一张表可以存储您的用户,因此每个用户在数据库中都有一条记录。您可能会发现可以为此扩展您拥有的数据库模式。祝你好运。 【参考方案1】: <?php
require("xmlapi.php"); // this can be downlaoded from https://github.com/CpanelInc/xmlapi-php/blob/master/xmlapi.php
$xmlapi = new xmlapi("cpanlel host name");
$xmlapi->set_port( 2083 );
$xmlapi->password_auth('cpanel username','cpanel passsword');
$xmlapi->set_debug(0);//output actions in the error log 1 for true and 0 false
$cpaneluser='cpanel username';
$databasename="something";
$databaseuser="database username";
$databasepass= 'database password';
//create database
$createdb = $xmlapi->api1_query($cpaneluser, "mysql", "adddb", array($databasename));
//create user
$usr = $xmlapi->api1_query($cpaneluser, "Mysql", "adduser", array($databaseuser, $databasepass));
//add user
$addusr = $xmlapi->api1_query($cpaneluser, 'Mysql', 'adduserdb', array('' . $databasename . '', '' . $databaseuser . '', 'all'));
?>
使用上面的代码,您将能够创建新数据库,将新用户添加到数据库,并授予对数据库用户的所有访问权限。
【讨论】:
以上是关于通过 cPanel 使用 PHP 创建 mysql DB 并导入 *.sql 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 PHP 在 Cpanel 中创建电子邮件帐户? [关闭]