我正在使用MySQL和PHP进行大学项目,发生了许多错误。第一个是无法连接到数据库,而我已经通过输入数据库名称解决了该问题。这应该是网站的注册表格。 数据现在没有存储在数据库中,但是我看不到是什么原因引起的-或发生了另一个我不知道的错误。 连接到数据库:
<?php
$db = new mysqli('(database name)', 'localhost', 'root', '', '09');
if($db->connect_errno > 0) {
die('Unable to connect to database [' . $db->connect_error . ']');
}
?>
注册:
require_once '../../includes/db-connect.php';
//get data from POST
$fname = filter_var($_POST['fname']);
$lname = filter_var($_POST['lname']);
$dob = filter_var($_POST['dob']);
$email = filter_var($_POST['email']);
$password = filter_var($_POST['password']);
$confirmpassword = filter_var($_POST['confirmPassword']);
$sql = 'INSERT INTO users ' .
'(`fname`, `lname`, `dob`, `email`, `password`)' .
'VALUES ' .
'("' . $db->escape_string($fname) .
'", "' . $db->escape_string($lname) .
'", "' . $db->escape_string($dob) .
'", "' . $db->escape_string($email) .
'", "' . $db->escape_string($password) .'")';
$result = mysqli_query($db, $sql);
//if the user is successfully entered into the table, redirect to login page
if($result) {
header('Location: /ct4009_2/user/login/login.php');
die();
}
die('There was an error inserting user data into the database');
?>
最后,我运行的sql查询传播数据库表:
CREATE TABLE `users` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`email` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`profilePic` varchar(255) NOT NULL,
`fname` varchar(255) NOT NULL,
`lname` varchar(255) NOT NULL,
`dob` date NOT NULL,
`deleted` INT DEFAULT 0
);
CREATE TABLE `posts` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`poster_id` INT NOT NULL,
`date` varchar(255) NOT NULL,
`post_body` varchar(1000) NOT NULL,
`img_path` varchar(255),
`comments` varchar(1000),
`likes` varchar(1000),
`deleted` INT DEFAULT 0
);
答案 0 :(得分:1)
在您的表def中,我找到了该成员:
`profilePic` varchar(255) NOT NULL,
它没有默认值,并且不允许NULL。在INSERT中,您没有为其定义值。您确定不会引发任何错误吗?