Я разрабатываю сайт, который выглядит в основном так:Вставьте несколько запросов (Mysqli и PHP)
<div> <form action="insert" method="POST"> <div> .....bla bla bla.... </div> </form> </div>
Внутри «блаблабла» У меня есть 2 <div>
теги: один для клиентов и другой - для автомобилей (я в мастерской по ремонту автомобилей), которые содержат несколько тегов <input>
, только один (Транспортные средства) двух <div>
вставляет данные.
Возможно, я неправильно использую mysqli_multi_query. Это мой PHP код:
<?php
//error_reporting(0);
//conexion a la base de datos
$link = mysqli_connect("localhost","root","","delher");
if ($link===false){
die("ERROR: NO SE PUDO CONECTAR.".mysqli_connect_error());
}
//declaracion de variables
$null = NULL;
$nombre = ($_POST['nombre']);
$calle_num = ($_POST['calle_num']);
$colonia = ($_POST['colonia']);
$codigopostal = ($_POST['codigopostal']);
$ciudad = ($_POST['ciudad']);
$estado = ($_POST['estado']);
$pais = ($_POST['pais']);
$telefono_fijo = ($_POST['telefono_fijo']);
$telefono_movil = ($_POST['telefono_movil']);
$email = ($_POST['email']);
$curp = ($_POST['curp']);
$vin = ($_POST['vin']);
$marca = ($_POST['marca']);
$modelo = ($_POST['modelo']);
$linea = ($_POST['linea']);
$motor = ($_POST['motor']);
$color = ($_POST['color']);
$placas = ($_POST['placas']);
//multiquery mysqli...
//inserta campos del cliente en la tabla clientes
$sql = "INSERT INTO cliente (nombre, calle_num, colonia, codigopostal, ciudad, estado, pais, telefono_fijo, telefono_movil, email, curp) VALUES ('$nombre','$calle_num','$colonia','$codigopostal','$ciudad','$estado','$pais','$telefono_fijo','$telefono_movil','$email','$curp');";
//inserta los campos del vehiculo en la tabla vehiculo
$sql = "INSERT INTO vehiculo (vin, marca, modelo, linea, motor, color, placas) VALUES ('$vin','$marca','$modelo','$linea','$motor','$color','$placas')";
//
if(mysqli_multi_query($link,$sql)){
echo "Orden registrada correctamente!
En 3 segundos se redirigira a la pagina anterior.";
header("refresh:3; url=index.php");
}
else{
echo "ERROR: No se pudo ejecutar $sql." .mysql_error($link);
}
//cierra conexion
mysqli_close($link);
?>
я уже пытался поставить точку с запятой между запросами ... и сделал то же самое, он просто только заполняет «vehiculo» стол
Это мой дизайн: enter image description here
вы топает над $ SQL 2-й раз – Drew
вы переписав запросы. '$ sql =" foo "; $ sql = "bar" ', оставляет $ sql только с' bar'. Поэтому вы НЕ отправляете несколько запросов, вы отправляете ОДИН - последний, который вы определили. И вы уязвимы для атак [SQL Injection] (http://bobby-tables.com) в любом случае, так что сидеть сложа руки, расслабиться - ваш сервер будет Pwn3d в ближайшее время и тогда ваша проблема является спорной. –
Пожалуйста, не делайте такие вещи, как 'x === false'. Просто попробуйте '! X' вместо этого. – tadman