【发布时间】:2017-05-06 08:05:58
【问题描述】:
我知道以前有人问过这个问题,我已经尝试过这些解决方案,但它们没有奏效。我正在创建一个社交网络,但是当我单击提交时,注册系统无法正常工作,这给了我这个错误:
致命错误:未捕获的异常“PDOException”和消息“SQLSTATE[3D000]:无效的目录名称:1046 未选择数据库”在 C:\xampp\htdocs\Breakr\classes\DB.php:12 堆栈跟踪:#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} 在第 12 行的 C:\xampp\htdocs\Breakr\classes\DB.php 中抛出
DB.php (database.php) 上的第 12 行似乎存在问题
<?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;
}
}
以及 create-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>
谢谢
【问题讨论】:
-
PDO 手册中列出了正确的连接语法。
标签: php mysql database pdo social-networking