通过 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 文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 WHM/Cpanel 通过 PHP 创建电子邮件

如何通过 PHP 在 Cpanel 中创建电子邮件帐户? [关闭]

cPanel创建数据库教程

通过 cPanel 创建的 MySql 用户在尝试登录时被“拒绝访问”

mysql数据库无法连接cpanel

如何使用 php 在 cpanel 上创建电子邮件帐户