我正在尝试创建一个CMS,我想让我的客户生活更轻松,所以我自己创建数据库。
我在尝试这样做时遇到了问题。未创建数据库,因此无法连接PDO连接,并且不推荐使用mysql
,因此无法使用它。在创建数据库之前,您对如何创建PDO连接有什么建议吗?像一个mysql_select_db()
替代品?
答案 0 :(得分:29)
您可以通过此方式启动PDO连接,如果我错了,请纠正我:
$db = new PDO( "mysql:host=localhost", 'user', 'pass' );
与正常连接的区别在于删除的部分dbname=[xx]
,如您所见。
当您想使用UTF8连接时,这也是一个免费提示:
$db = new PDO( "mysql:host=localhost;charset=UTF-8", 'user', 'pass' );
为了Yehonatan
的评论,您可以通过以下方式选择数据库:
$db->exec('USE databaseName');
答案 1 :(得分:1)
只需删除dbname=
部分:
try {
$pdo = new PDO("mysql:host=localhost;", "user", "pass");
$stmt = $pdo->query("SHOW DATABASES");
var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
}
catch (PDOException $e) {
echo $e->getMessage();
}
给我
array(11) {
[0]=>
array(1) {
["Database"]=>
string(18) "information_schema"
}
[1]=>
array(1) {
["Database"]=>
string(5) "cdcol"
}
[2]=>
array(1) {
["Database"]=>
string(5) "chica"
}
[3]=>
array(1) {
["Database"]=>
string(9) "downloads"
}
[4]=>
array(1) {
["Database"]=>
string(5) "mysql"
}
[5]=>
array(1) {
["Database"]=>
string(18) "performance_schema"
}
[6]=>
array(1) {
["Database"]=>
string(10) "phpmyadmin"
}
[7]=>
array(1) {
["Database"]=>
string(8) "rishumon"
}
[8]=>
array(1) {
["Database"]=>
string(4) "test"
}
[9]=>
array(1) {
["Database"]=>
string(5) "users"
}
[10]=>
array(1) {
["Database"]=>
string(7) "webauth"
}
}
正如所料。
答案 2 :(得分:1)
我发现唯一的想法是在运行任何查询之前使用$pdo->query('USE databasename')
设置默认数据库。