2016-10-13 4 views
-2

Я разрабатываю сайт, который выглядит в основном так:Вставьте несколько запросов (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

+1

вы топает над $ SQL 2-й раз – Drew

+1

вы переписав запросы. '$ sql =" foo "; $ sql = "bar" ', оставляет $ sql только с' bar'. Поэтому вы НЕ отправляете несколько запросов, вы отправляете ОДИН - последний, который вы определили. И вы уязвимы для атак [SQL Injection] (http://bobby-tables.com) в любом случае, так что сидеть сложа руки, расслабиться - ваш сервер будет Pwn3d в ближайшее время и тогда ваша проблема является спорной. –

+0

Пожалуйста, не делайте такие вещи, как 'x === false'. Просто попробуйте '! X' вместо этого. – tadman

ответ

0

Здесь не нужно mysqli_multi_query.

Вместо этого запустите оба запроса отдельно, используя подготовленные заявления

+1

Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. - [Из обзора] (/ review/low-quality-posts/13977072) –

+0

Я отвечу на этот ответ, если он будет удален, потому что это лучший ответ, который может получить любой, кто сталкивается с той же проблемой. –

+0

Я не вижу ничего плохого в этом ответе. +1 – Drew