Я пытаюсь создать файл PHP, который подключается к базе данных mysql и вставляет данные в базу данных. Однако я испытываю трудности с подключением к базе данных. Я получаю следующую ошибку
(!) Примечание: неопределенная переменная: dbname в C: \ wamp \ www \ php_Final_kk.php в строке 34
Стек вызовов
(!) Примечание: неопределенная переменная: sql в C: \ wamp \ www \ php_Final_kk.php в строке 52
SQLSTATE [HY000] [1045] Доступ запрещен для пользователя ‘root’ @ ‘localhost’ (используется пароль: YES)
Мое имя пользователя и пароль верны для базы данных, и все привилегии предоставлены, но я просто не могу заставить их подключиться, любая помощь будет оценена, и я включил свой код ниже. Спасибо!
<?php$servername = "localhost";
$username = "root";
$password = "";
// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];
$uname = $_POST['uname'];
$password = $_POST['password'];
$SSN = $_POST['ssn'];
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO users (fname, lname,email,username,password,SSN) VALUES ('$fname', '$lname', '$email', '$uname', '$password', '$ssn')";// use exec() because no results are returned
$conn->exec($sql);
echo "New record created successfully";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
enter code here
Когда вы создаете соединение через mysqli_connect
, вы должны указать 4 аргумента: хост, имя пользователя, пароль и имя базы данных. Вам не хватает имени базы данных.
Правильный вызов:
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
if (!$link) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
Это все объясняется в официальные документы
Вы не определили имя базы данных
dbname=$dbname$servername = "localhost";
$username = "root";
$password = "";
$dbname = "my db name";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname );
Исправьте здесь:
Вы должны указать 4 необходимых аргумента: хост, имя пользователя, пароль и имя базы данных. Вы пропустили имя базы данных.
$servername = 'localhost';
$username = 'root';
$password = '';
$dbname = 'test';
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$dbname
это имя вашей базы данных, которое отсутствует в вашем коде.