Вставить данные формы в базу данных с Php и PDO - PullRequest
0 голосов
/ 08 мая 2018

У меня проблемы с вставкой данных в базу данных mysql с использованием pdo и php. Я много чего перепробовал в интернете, но, похоже, ничего не работает.

Это то, что у меня есть, это самое близкое к работе:

Подключение к базе данных:

<?php
    class Database
 {

private static $dbName = 'gildeuitleen' ;
private static $dbHost = 'localhost' ;
private static $dbUsername = 'root';
private static $dbUserPassword = 'root';

private static $cont  = null;

public function __construct() {
    die('Init function is not allowed');
}

public static function connect()
{

   if ( null == self::$cont )
   {     
    try
    {
      //Connectie maken
      self::$cont =  new PDO( "mysql:host=".self::$dbHost.";"."dbname=".self::$dbName, self::$dbUsername, self::$dbUserPassword); 
    }
    catch(PDOException $e)
    {
      die($e->getMessage()); 
    }
   }
   return self::$cont;
}

public static function disconnect()
{
    self::$cont = null;
}
  }
  ?>

Форма:

<form method="post" action="add.php">
                <input type="text" name="Barcode" placeholder="Barcode" required><br>
                <select name="Product">
                  <option value="laptop">Laptop</option>
                  <option value="beamer">Beamer</option>
                </select><br>
                <select name="Vestiging">
                  <option value="venlo">Venlo</option>
                  <option value="Venray">Venray</option>
                  <option value="Roermond">Roermond</option>
                  <option value="Weert">Weert</option>
                </select> <br>
                <input type="text" name="Datumuitgave" placeholder="JJJJ-MM-DD" required><br>
                <input type="text" name="Datumteruggave" placeholder="JJJJ-MM-DD" required><br>
                <input type="text" name="Persoonlijknummer" placeholder="Persoonlijk nummer" required><br>
                <input type="submit" value="Toevoegen">


            </form>

Файл add.php:

 <?php

        include 'includes/database-inc.php';

        $pdo = Database::connect();

        try{

            $query = "INSERT INTO leningen (Barcode, Product, Vestiging, Datum uitgave, Datum teruggave, Persoonlijk nummer huurder) VALUES (?, ?, ?, ?, ?, ?)"; 

            $stmt = $pdo->prepare($query);   

            $stmt->execute();

            header('Location: OverzichtProducten.php?succes');
            exit();

            }


        catch(PDOException $exception){

            die('ERROR: ' . $exception->getMessage());

    }
    ?>

Кто-нибудь понял, что здесь происходит не так? Он возвращает меня на страницу как обычно, но ничего не добавляет в базу данных.

Ответы [ 2 ]

0 голосов
/ 08 мая 2018
<form method="post" action="add.php">
            <input type="text" name="Barcode" placeholder="Barcode" required><br>
            <select name="Product">
              <option value="laptop">Laptop</option>
              <option value="beamer">Beamer</option>
            </select><br>
            <select name="Vestiging">
              <option value="venlo">Venlo</option>
              <option value="Venray">Venray</option>
              <option value="Roermond">Roermond</option>
              <option value="Weert">Weert</option>
            </select> <br>
            <input type="text" name="Datumuitgave" placeholder="JJJJ-MM-DD" required><br>
            <input type="text" name="Datumteruggave" placeholder="JJJJ-MM-DD" required><br>
            <input type="text" name="Persoonlijknummer" placeholder="Persoonlijk nummer" required><br>
            <input type="submit"  value="Toevoegen">


        </form>

The add.php file:

$Barcode= $_POST['Barcode'];    
$Vestiging= $_POST['Vestiging'];    
$Datumuitgave= $_POST['Datumuitgave'];  
$Datumteruggave= $_POST['Datumteruggave'];  
$Persoonlijknummer= $_POST['Persoonlijknummer'];

    include 'includes/database-inc.php';
    $pdo = Database::connect();

    try{

        $query = "INSERT INTO leningen (Barcode, Product, Vestiging, Datum uitgave, Datum teruggave, Persoonlijk nummer huurder) VALUES (:Barcode,Vestiging,:Datumuitgave,:Datumteruggave,:Persoonlijknummer)"; 

        $stmt = $pdo->prepare($query);   
        $stmt->bindparam(":Barcode",$Barcode);
        $stmt->bindparam(":Vestiging",$Vestiging);
        $stmt->bindparam(":Datumuitgave",$Datumuitgave);
        $stmt->bindparam(":Datumteruggave",$Datumteruggave);    
        $stmt->bindparam(":Persoonlijknummer",$Persoonlijknummer);
        $stmt->execute();

        header('Location: OverzichtProducten.php?succes');
        exit();

        }


    catch(PDOException $exception){

        die('ERROR: ' . $exception->getMessage());

}
?>
0 голосов
/ 08 мая 2018

это даст вам ваши "бобы"

EDIT проверить: запустите это как отдельный URL, игнорируйте форму и т. д.

EG:

сохранить файл как bob.php Посетите http://myurl.com/bob.php и убедитесь, что includes/database-inc.php include доступен для поиска, а затем опубликуйте результат

<?php

    include 'includes/database-inc.php';

    $pdo = Database::connect();

    try{

        $query = "INSERT INTO leningen ";
        $query += " (`Barcode`, `Product`, `Vestiging`, `Datum uitgave`, `Datum teruggave`, `Persoonlijk nummer huurder`) ";
        $query += "VALUES (:barcode, :product, :vestiging, :datum_uitgave, :datum_teruggave, :persoonlijk_nummer)"; 

        $stmt = $pdo->prepare($query);   

        $stmt->execute(array(
          "barcode" => "Bob",
          "product" => "Bob",
          "vestiging" => "Bob",
          "datum_uitgave" => "Bob",
          "datum_teruggave" => "Bob",
          "persoonlijk_nummer" => "Bob"
        ));

        echo "Success";
    }
    catch(PDOException $exception){
        die('ERROR: ' . $exception->getMessage());
    }
    catch (Exception $exception) {
       die('General Error: '.$exception->getMessage());
    }
?>

также сделайте $cont static public и вызовите $ pdo-> cont-> prepare ();

...