mysql — ошибка PHP: база данных не выбрана, хотя написание правильное

Я знаю, что этот вопрос уже задавался, и я попробовал эти решения, но они не сработали. Я создаю социальную сеть, однако системы регистрации не работают, так как при нажатии кнопки «Отправить» выдается следующее сообщение об ошибке:

Неустранимая ошибка: необработанное исключение «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 используйте … ‘, Array) # 2 {main}, брошенный в C: \ xampp \ htdocs \ Breakr \ classes \ DB.php в строке 12

Похоже, что проблемы со строкой 12 на DB.php (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;
}

}

а также строка 9 на create-account.php

<?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>

благодарю вас

-2

Решение

Попробуйте использовать

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

вместо

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

Другие решения

измените строку кода, как показано ниже

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

Для справки смотрите этот.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector