数据未存储在MySQL数据库中

时间:2019-04-20 19:00:13

标签: php mysql

我正在使用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
);

1 个答案:

答案 0 :(得分:1)

在您的表def中,我找到了该成员:

 `profilePic` varchar(255) NOT NULL,

它没有默认值,并且不允许NULL。在INSERT中,您没有为其定义值。您确定不会引发任何错误吗?