php - error with a foreign key constraint fails -


i'm creating form insert data logement table , lit table , table espace. i'm trying insert data in tables connected in image enter image description here

but i'm getting error :

warning: mysql_insert_id() expects parameter 1 resource, object given in f:\-- software\web-server\esyphp\ep0002\data\localweb\school\buckup\bu-projet\0008\ajoutez.php on line 88 error: not able execute insert logement(titre, adresselogement, prix, nombreperson, idtypelogement) values ('hgfrte','125669 hgfer','1236','33',''). cannot add or update child row: foreign key constraint fails (`yandexd`.`logement`, constraint `fk_logement_idtypelogement` foreign key (`idtypelogement`) references `typedelogement` (`idtypelogement`)) error: not able execute insert lit(idlit, typedelit) values ('','kanape, canape'). cannot add or update child row: foreign key constraint fails (`yandexd`.`lit`, constraint `fk_lit_idlogement` foreign key (`idlogement`) references `logement` (`idlogement`))  

my php code

if(isset($_post['submit'])){  /* attempt mysql server connection. assuming running mysql  server default setting (user 'root' no password) */  $link = @mysqli_connect("localhost", "root", "", "yandexd");     // check connection  if($link === false){      die("error: not connect. " . mysqli_connect_error());  }     switch ($_post['logm-type']) {      case "maison":          $_post['logm-type'] = 1;          break;      case "appartement":          $_post['logm-type'] = 2;          break;      case "chambre_privée":          $_post['logm-type'] = 3;          break;      case "chambre_partagée":          $_post['logm-type'] = 4;          break;  }      $sql = "insert logement(titre, adresselogement, prix, nombreperson, idtypelogement)  	values ('".$_post['logm-titre']."','".$_post['logm-adresse']."','".$_post['logm-prix']."','".$_post['logm-personne']."','".$_post['logm-type']."')";      $thelogm_id = mysql_insert_id( $link );    $sql1 = "insert espace(typedespace, idlogement)  	values ('".$_post['logm-espace']."','".$thelogm_id."')";      $sql2 = "insert lit(typedelit, idlogement)  	values ('".$_post['logm-typelit']."','".$thelogm_id."')";         if(mysqli_query($link, $sql)){      echo "le logement est ajouté.";  } else{      echo "error: not able execute $sql. " . mysqli_error($link);  }  if(mysqli_query($link, $sql1)){      echo "le logement est ajouté.";  } else{      echo "error: not able execute $sql1. " . mysqli_error($link);  }  if(mysqli_query($link, $sql2)){      echo "le logement est ajouté.";  } else{      echo "error: not able execute $sql2. " . mysqli_error($link);  }     // close connection  mysqli_close($link);  }          else {

i tried solution found on stackoverflow, can't solve problem

if client sends string in logm-type doesn't match 1 of 4 you've mentioned in switch statement, code pass string gave if id, in case error message you're seeing best case scenario.

your code using post values in sql queries directly, not idea - if client (accidentally or deliberately) includes apostrophe?


Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -