-1

This is my function in Database class in config.php:

        public function insertData($name, $address, $salary)
            {
                $sql = "INSERT INTO `employees` (`id`, `name`, `address`, 
                salary`) VALUES (:name, :address, :salary)";
                $stmt = $this->con->prepare($sql);
                $stmt->bindParam(':name', $name, PDO::PARAM_STR);
                $stmt->bindParam(':address', $address, PDO::PARAM_STR);
                $stmt->bindParam(':salary', $salary, PDO::PARAM_INT);
                $stmt->execute();
            }

This is index.php:

<?php

    include 'config.php';

    if(isset($_POST['submit'])){
            $name = $_POST['name'];
            $adr =  $_POST['address'];
            $sal = $_POST['salary'];
            $database->insertData($name,$adr, $sal);
    }
?>

This is my form:

        <form method="post" action="">
            <div class="input-group">
                <input type="text" name="name" placeholder="Name">
            </div>
            <div class="input-group">
                <input type="text" name="address" placeholder="Address">
            </div>
            <div class="input-group">
                <input type="number" name="salary" placeholder="Salary">
            </div>
            <div class="input-group">
                <button type="submit" name="save" class="btn">Save</button>
            </div>

        </form>
Community
  • 1
  • 1
kaluaaa
  • 47
  • 5
  • 2
    You attempt to insert to the `id` column, but you don't give it a value. Assuming that the id is auto increment, just remove it from the column-list. – Qirel Jul 21 '19 at 18:44

1 Answers1

0

Either change submit button name from "save" to "submit" (to match what you're checking in $_POST):

<button type="submit" name="submit" class="btn">Save</button>

or change

if(isset($_POST['submit'])){

to

if(isset($_POST['save'])){
5lava
  • 1,168
  • 11
  • 12