PHP 使用 PDO 时写出到屏幕


PHP Written out to screen when using PDO

我在尝试将信息插入数据库时遇到问题。当我在不同的文件中运行数据库连接时,它本身工作正常。但是当我做->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}。现在它运行正常。感谢大家的帮助。