Я делаю сценарий регистрации и использую PDO в первый раз, но я получаю эту ошибку при попытке ее использовать. Определения отлично работают при использовании MySQLi.Ошибка PDO: не выбрана база данных
Мой код дает мне эту ошибку:
Array ([0] => SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected)
Это код: (/register.php)
try{
$input_password_hash = password_hash($input_password, PASSWORD_DEFAULT);
$stmt = $PDO_new->prepare("SELECT user_name FROM users WHERE user_name = :username");
$stmt->bindParam(":username",$input_username);
$stmt->execute();
echo "code after exec";
//checks if user already exist in database.
if($stmt->rowCount()>0){
$error[] = "Username already exist";
echo "user is there";
}
else{
echo "user not there";
$insert = "INSERT INTO users(user_name, user_password_hash, user_email) VALUES($input_username,$input_password_hash, $input_email)";
}
} catch(PDOException $e){
$error[] = $e->getMessage();
}
Это файл для подключения к Databse: ((конфиг/db_connect.php)
<?php
require_once($_SERVER['DOCUMENT_ROOT']."/config/db.php");
$PDO_new = new PDO("mysql:host=" . DB_HOST . ";DBName=" . DB_NAME, DB_USER, DB_PASS);
$PDO_new->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
И это файл, в котором я определяю информацию для базы данных: (/config/db.php)
Почему у вас установлены соединения MySQLi и PDO? Они несовместимы. Я не уверен в чувствительности к регистру в строке подключения PDO, но обычно это нижний регистр: '; dbname =". DB_NAME' –
Да, попробуйте изменить 'DBName' на' dbname'. –