选择要从PHP登录页面登录的数据库

时间:2017-09-22 12:16:21

标签: php mysql pdo

好吧,我是PHP的新手,也是一块砖头的傻瓜,所以请原谅我就某人可能做过的事情寻求帮助。

情景:

我有10个具有完全相同结构的数据库。我需要在登录页面选择数据库(通过输入它的名称,例如company.ca_a1 company_b2等)。然后登录到所选数据库并继续。

到目前为止,我发现的一切只显示了静态连接。

我正在研究使用PDO。

任何有任何想法的人都会受到赞赏。

到目前为止,我得到了这个,但现在如何在所有其他页面上保持此连接?

我还想过使用Database类,但不知道如何实现它。

的login.php

<?php

$db_name = $_POST['co_db'];

$host = 'localhost';
$db_file = $db_name; //Database Name from $_POST
$db_username = 'root';
$db_password = '';

try
{
    $pdo = new PDO('mysql:host='. $host .';dbname='.$db_file, $db_username, $db_password);

}
catch (PDOException $e)
{
    exit('Error Connecting To DataBase');
}
?>

请记住,我稍后会清理输入,只需先让它工作。

登录-check.php

<?php

class Database
{   
private $host = "localhost";
private $db_name = "dblogin";
private $username = "root";
private $password = "";
public $conn;

public function dbConnection()
{

    $this->conn = null;    
    try
    {
        $this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
        $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);   
    }
    catch(PDOException $exception)
    {
        echo "Connection error: " . $exception->getMessage();
        die();
    }

    return $this->conn;
}
}

我想过使用$ _SESSIONS存储$ db_name,但不知道如何管理它。

我想像这样创建一个类并将$ db_name传递给它,但是不知道如何做到这一点?

Ext.create('Ext.container.Container', {
     height: 300,
     layout: {
         type: 'vbox',
         align: 'stretch'
     },
     width: 400,
     renderTo: Ext.getBody(),
     border: 1,
     items: [{
         xtype: 'panel',
         collapsible: true,
         title: 'First Panel',
         flex: 1
     }, {
         xtype: 'splitter',
         height: 20
     }, {
         xtype: 'panel',
         collapsible: true,
         flex: 1,
         maintainFlex: true,
         title: 'Second Panel'
     }]
 });

对不起,如果它很乱,但我希望有人能理解这一切。

此致

克里斯

1 个答案:

答案 0 :(得分:0)

如果您作为第一个查询运行:

USE mydatabase;

所有下一个查询都将默认使用此数据库,您无需在任何查询中指定它。