Bonjour.
j'ai la table orders.
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE TABLE IF NOT EXISTS `philippe`.`orders` (
  `order_number` INT NOT NULL AUTO_INCREMENT,
  `conducteur` VARCHAR(100) CHARACTER SET 'utf8' NOT NULL,
  `lieudepart` VARCHAR(500) CHARACTER SET 'utf8' NOT NULL,
  `lieuarrive` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `participation` DOUBLE NOT NULL,
  `datedepart` DATETIME NOT NULL,
  `datearrive` DATETIME NOT NULL,
  `idmembre` INT NOT NULL DEFAULT '0',
  PRIMARY KEY (`order_number`),
  INDEX `fk_orders_membre_idx` (`idmembre` ASC) VISIBLE,
  CONSTRAINT `fk_orders_membre`
    FOREIGN KEY (`idmembre`)
    REFERENCES `philippe`.`membre` (`idmembre`))
ENGINE = InnoDB
AUTO_INCREMENT = 57
DEFAULT CHARACTER SET = utf8mb3;
Je ne peux pas enregistrer une nouvelle ilgne sans remplir le champs idmembre.
Hors idmembre est par défaut 0;
voici mon code insert.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
if(isset($_POST["conducteur"], $_POST["lieudepart"], $_POST["lieuarrive"],$_POST["participation"],$_POST["datedepart"], $_POST["datearrive"] )) {
 
// $order_number = NULL;
$conducteur = htmlentities($_POST['conducteur']) ;
$lieudepart = htmlentities($_POST['lieudepart']);
$lieuarrive = htmlentities($_POST['lieuarrive']);
$participation = htmlentities($_POST['participation']);
$datedepart = $_POST['datedepart'];
$datearrive = $_POST['datearrive'];
 
  try {
 
 
      $PDO = new PDO('mysql:host=localhost;dbname=philippe','root','');
      $PDO->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
      $PDO->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_OBJ);
 
      $sql = "INSERT INTO orders (conducteur, lieudepart, lieuarrive, participation, datedepart, datearrive)
VALUES (:conducteur,:lieudepart,:lieuarrive,:participation,:datedepart,:datearrive)";
 
 
    $req = $PDO->prepare($sql);
 
 
    $req->execute(array(
 
        "conducteur" => $conducteur,
 
        "lieudepart" => $lieudepart,
 
        "lieuarrive" => $lieuarrive,
 
        "participation" => $participation,
 
        "datedepart" => $datedepart,
 
        "datearrive" => $datearrive
 
    ));
 
  }
catch(Exception $e)
 
{
    echo '.$e->getMessage().';
//     die('Erreur : '.$e->getMessage());
 
}
 
echo 'Success';
}
il me dit
violation de contrainte d'intégrité.
Bref pouvez vous m'indiquer comment faire les insert en respectant les clés étrangères.
Merci à tous.