【发布时间】:2018-04-16 21:47:29
【问题描述】:
我有两张表是billing_info, shipping_info。 billing_id 是主键,billing_id 是 shipping_info 中的外键。
我有 billing_info 地址表格。用户将填写账单信息,填写信息后有一个复选框,称为shipping address is different。如果任何用户选中该复选框,那么它将询问运输信息。根据数据填写运输信息后,billing info 将存储在 billing_info 表中,shipping_info 将存储在 shipping info 表中。
如果用户未选中该复选框,则只有帐单信息将存储在帐单信息表中。
<input type="checkbox" name="shipping_status" value="1">
如果用户未选中复选框但在选中复选框后无法插入数据,我只能将数据插入到 billing_info 的数据库中。 查询可能存在一些问题。我试过查询是
1) START TRANSACTION;
INSERT INTO table1 (column name)VALUES (values);
INSERT INTO table2 (column name) VALUES (values);
COMMIT;
2) BEGIN;
INSERT INTO table1 (column name)VALUES (values);
INSERT INTO table2 (column name) VALUES (values);
COMMIT;
但仍然无法插入数据。 你愿意帮忙吗?
这是存储 int 用户信息的正确方法吗?
if (isset($_POST['submit'])){
$b_firstname=$conn->real_escape_string(trim($_POST['b_firstname']));
$b_lastname=$conn->real_escape_string(trim($_POST['b_lastname']));
$b_address =$conn->real_escape_string(trim($_POST['b_address']));
$b_country=$conn->real_escape_string(trim($_POST['b_country']));
$b_state=$conn->real_escape_string(trim($_POST['b_state']));
$b_city=$conn->real_escape_string(trim($_POST['b_city']));
$b_pincode=$conn->real_escape_string(trim($_POST['b_pincode']));
$b_mobileno=$conn->real_escape_string(trim($_POST['b_mobileno']));
//$login_user_id=$conn->real_escape_string(trim($_POST['login_user_id']));
//echo $shipping_status=$conn->real_escape_string(trim($_POST['shipping_status']));
/*Shipping address*/
$s_firstname=$conn->real_escape_string(trim($_POST['s_firstname']));
$s_lastname=$conn->real_escape_string(trim($_POST['s_lastname']));
$s_address =$conn->real_escape_string(trim($_POST['s_address']));
$s_country=$conn->real_escape_string(trim($_POST['s_country']));
$s_state=$conn->real_escape_string(trim($_POST['s_state']));
$s_city=$conn->real_escape_string(trim($_POST['s_city']));
$s_pincode=$conn->real_escape_string(trim($_POST['s_pincode']));
$s_mobileno=$conn->real_escape_string(trim($_POST['s_mobileno']));
if (empty($conn->real_escape_string(trim($_POST['shipping_status'])))) {
$shipping_status=0;
}
else{
$shipping_status=1;
}
if ($shipping_status==0) {
echo $sql="INSERT INTO billing_info (b_firstname, b_lastname, b_address, b_country, b_state, b_city, b_pincode, b_mobileno,login_user_id,shipping_status, b_date_of_added) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?)";
// print_r($sql);
$stmt = $conn->prepare($sql);
$stmt->bind_param("ssssssiiiis", $b_firstname, $b_lastname, $b_address, $b_country, $b_state, $b_city, $b_pincode, $b_mobileno,$login_user_id=1,$shipping_status, $date_of_added);
}
else{
// prepare and bind
echo $sql="INSERT INTO billing_info (b_firstname, b_lastname, b_address, b_country, b_state, b_city, b_pincode, b_mobileno,login_user_id,shipping_status, b_date_of_added) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?);INSERT INTO shipping_info (s_firstname, s_lastname, s_address, s_country, s_state, s_city, s_pincode, s_mobileno,b_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ssssssiiiisssssssiii", $b_firstname, $b_lastname, $b_address, $b_country, $b_state, $b_city, $b_pincode, $b_mobileno,$login_user_id=1,$shipping_status, $date_of_added,$s_firstname, $s_lastname, $s_address, $s_country, $s_state, $s_city, $s_pincode, $s_mobileno,LAST_INSERT_ID());
}
$stmt->execute();
$stmt->close();
}
//redirect code
//header('Location: contactus.php');
$conn->close();
}
【问题讨论】: