我在尝试将信息插入数据库时遇到问题。当我在不同的文件中运行数据库连接时,它本身工作正常。但是当我做->prepare
它会从那个点开始将PHP写入屏幕。然后我将PDO连接移动到寄存器.php文件。这也无济于事。唯一改变的是,现在它从->setAttribute
开始写出PHP进行筛选。
这是我在注册中使用的PHP代码.php:
<?php
//include '../database_connect/connect.php';
PDO::getAvailableDrivers();
$db = new PDO('mysql:host=127.0.0.1;dbname=local_db', 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$dob = $_POST['dob'];
//$_POST['day'] . $_POST['month'] . $_POST['year'];
//$final_dob = date('d-m-Y', strtotime($dob));
try {
$sql_query = 'INSERT INTO user_data (username, password, email, first_name, last_name) VALUES (?,?,?,?,?)';
$query = $db->prepare($sql_query);
} catch (PDOException $e)
echo $e->getMessage();
?>
这是我在注释连接中使用的.php它没有将PHP写到浏览器中。
<?php
// Get available driver, check if it's installed
//print_r(PDO::getAvailableDrivers());
$db = new PDO('mysql:host=127.0.0.1;dbname=local_db', 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
/*try {
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo $e->getMessage();
} */
?>
我知道密码没有散列,但是在开始解决这个问题之前,这个问题就击中了我。
我发现了问题。我不知道原因,但是当我按下索引中的提交按钮时.php,它将我重定向到E://{file_path}
而不是localhost/{file_path}
。现在它运行正常。感谢大家的帮助。