Ich versuche, einen Einsatz zu tun, wo es FK in einer Tabelle, aber es funktioniert nicht ..Php Mysql mit mehreren Fremdschlüssel einfügen
Mein db Name bd_telefonos
meine db aussieht wird dies:
Tisch marcas:
idmarcas --> PK AI
nombre
Tisch sistemas_operativos:
idsistemas_operativos -->PK AI
nombre
Tisch telefonos:
modelo
idtelefonos --> PK AI
resolucion_alto
resolucion_ancho
peso
bateria
marcas_idmarcas --> FK
sistemas_operativos_idsistemas_operativos -- > FK
Meine php sieht wie folgt aus:
<?php
include_once('conexion/conexion.php');
$con = new conectar();
$modelo= $_POST['modelo'];
$alto= $_POST['alto'];
$ancho= $_POST['ancho'];
$peso= $_POST['peso'];
$bateria= $_POST['bateria'];
$nombresis = $_POST['nombresis'];
$nombremarca = $_POST['nombremarca'];
$sSql = "INSERT INTO `bd_telefonos`.`telefonos` (`modelo`, `resolucion_alto`, `resolucion_ancho`, `peso`, `bateria`) VALUES ('$modelo', '$alto', '$ancho', '$peso', '$bateria')";
if(!mysqli_query($con->conectarse(), $sSql)){
$resp = 'error ';
}
else{
/*=============================================================================
= select recently insert =
=============================================================================*/
$sSqlId = "SELECT MAX(id) as `id` FROM `bd_telefonos`.`telefonos`";
if($respuesta = mysqli_query($con->conectarse(), $sSqlId)){
foreach ($respuesta as $resp) {
$id = $resp['id'];
}
}
/*========================================================
= Insert sistemas_operativos
========================================================*/
$sSqlMas = "INSERT INTO `bd_telefonos`.`sistemas_operativos` (`idsistemas_operativos`, `nombre`) VALUES ('$id', '$nombresis')";
if (mysqli_query($con->conectarse(), $sSqlMas)) {
$resp = 'success';
echo $resp;
} else {
$resp = 'error';
echo $resp;
}
/*========================================================
= Insert marcas
========================================================*/
$sSqlMass = "INSERT INTO `bd_telefonos`.`marcas` (`idmarcas`, `nombre`) VALUES ('$id', '$nombremarca')";
if (mysqli_query($con->conectarse(), $sSqlMass)) {
$resp = 'success';
$resp = 'error';
echo $resp;
}
}
mysqli_close($con->conectarse());
?>
es funktioniert nicht, es ist nur nicht Einsatz in meinem Tisch telefonos machen, was mache ich falsch?
Hilfe bitte :(
"es funktioniert nicht" ist eine ziemlich imprec ise Beschreibung des Verhaltens, das beobachtet wird. Ein paar Vorschläge ... verwenden Sie mysqli_error, um die Fehlermeldung von MySQL abzurufen und den Fehler anzuzeigen oder zu protokollieren. Auch das "select max (id)" - Muster zum Abrufen des ID-Werts einer Zeile, die gerade eingefügt wurde, funktioniert beim Testen, aber es ist ein grundlegend gebrochenes Muster mit gleichzeitigen Sitzungen. Der Code scheint auch anfällig für SQL Injection zu sein. https://ericlippert.com/2014/03/05/how-to-debug-small-programs/ – spencer7593