2017-05-06 58 views
-2

我知道这个问题之前已经问过,我已经尝试过这些解决方案,他们没有工作。我创建一个社交网络,不过登记系统不工作,当我点击提交它给了我这个错误:PHP错误:没有选择数据库,即使拼写正确

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected' in C:\xampp\htdocs\Breakr\classes\DB.php:12 Stack trace: #0 C:\xampp\htdocs\Breakr\classes\DB.php(12): PDOStatement->execute(Array) #1 C:\xampp\htdocs\Breakr\create-account.php(9): DB::query('INSERT INTO use...', Array) #2 {main} thrown in C:\xampp\htdocs\Breakr\classes\DB.php on line 12

看样子是在db.php中具有线12个问题(database.php中)

<?php 
class DB { 

    private static function connect() { 
     $pdo = new PDO('mysql:127.0.0.1;dbname=breakr_main;charset=utf8', 'root', ''); 
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
return $pdo; 
     } 

    public static function query($query, $params = array()) { 
     $statement = self::connect()->prepare($query); 
     $statement->execute($params); 
     $data = $statement->fetchALL(); 
     return $data; 
    } 

    } 

,以及对创建-account.php线9

<?php 
include('classes/DB.php'); 

if (isset($_POST['createaccount'])) { 
$username = $_POST['username']; 
$password = $_POST['password']; 
$email = $_POST['email']; 

DB::query('INSERT INTO users VALUES (\'\',:username, :password, :email)', array(':username'=>$username, ':password'=>$password, ':email'=>$email)); 
echo "success!"; 

} 
?> 

<h1>Register</h1> 
<form action="create-account.php" method="post"> 
<input type="text" name="username" value="" placeholder="Username"><p /> 
<input type="password" name="password" value="" placeholder="Password"><p /> 
<input type="email" name="email" value="" placeholder="Email"><p/ > 
<input type="submit" name="createaccount" value="Create Account"> 
</form> 

谢谢

+0

正确的语法在PDO手册连接列出尝试使用。 –

回答

2

mysql:host=127.0.0.1;dbname=breakr_main;charset=utf8 

代替

mysql:127.0.0.1;dbname=breakr_main;charset=utf8 
+0

是的固定它 – klasmic

0

更改您的代码行如下

$pdo = new PDO('mysql:host=127.0.0.1;dbname=breakr_main;charset=utf8', 'root', ''); 

仅供参考,请参阅this

相关问题