php - PHP:未捕获的 PDOException:SQLSTATE [3D000]:无效的目录名称:1046 未选择数据库
问题描述
我正在尝试使用 PHP 制作注册页面,但我不熟悉这种语言和 MySQL。所以我一直在关注它的教程。我正确地遵循了一切并检查了多次。但我看不到问题所在。配置.php:
<<?php
$db_user = "root";
$db_pass = "";
$db_name = "useraccounts";
$db = new PDO('mysql:host=localhost;db_name=$db_name', $db_user, $db_pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
?>
注册.php
<?php
if (isset($_POST['create'])) {
if ($_POST['password'] == $_POST['confirm-password']) {
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$sql = "INSERT INTO users (username, email, password) VALUES(?,?,?)";
$stmtinsert = $db->prepare($sql);
# line 30 \/ \/ \/ \/
$result = $stmtinsert->execute([$username, $email, $password]);
if ($result) {
echo "yeeeet";
} else {
echo "nope";
}
}
} else {
}
?>
错误:致命错误:未捕获的 PDOException:SQLSTATE[3D000]:无效目录名称:1046 在 C:\xampp\htdocs\Website\registration.php:30 中未选择数据库 堆栈跟踪:#0 C:\xampp\htdocs\Website\ registration.php(30): PDOStatement->execute(Array) #1 {main} 在第 30 行的 C:\xampp\htdocs\Website\registration.php 中抛出
解决方案
您没有正确的 dns 字符串 对字符串中的 eval var 使用双引号(而不是单引号)
$db = new PDO("mysql:host=localhost;db_name=$db_name", $db_user, $db_pass);
推荐阅读
- css - 有没有办法折叠某些网格间隙?
- git - npm run deploy 时控制台返回错误
- python - 尝试获取数据的问题
- python - 输入以检查是否有人输入了低于 10 的东西,然后循环它直到他们输入高于 10 的输入,然后继续
- docker - 使用带有上下文的 Docker YML 文件到父级 (..) 在 WSL2 下构建需要太长时间
- reactjs - React:如果用户已登录,如何重定向到另一个 url?
- json - PowerBI - API 返回空 JSON
- javascript - 依赖添加项目
- google-cloud-platform - 监控 Cloud Composer 气流 UI
- amazon-web-services - AWS Route 53 连接到 S3 状态 Web 主机