Insert table en respectant les clés étrangères
Bonjour.
j'ai la table orders.
Code:
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:
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
Citation:
violation de contrainte d'intégrité.
Bref pouvez vous m'indiquer comment faire les insert en respectant les clés étrangères.
Merci à tous.