好吧,我是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'
}]
});
对不起,如果它很乱,但我希望有人能理解这一切。
此致
克里斯
答案 0 :(得分:0)
如果您作为第一个查询运行:
USE mydatabase;
所有下一个查询都将默认使用此数据库,您无需在任何查询中指定它。