【问题标题】:insert into multiple tables in php within a single form在一个表单中插入多个 php 表
【发布时间】:2014-09-30 15:01:55
【问题描述】:

我创建了一个表单,这里是用于将值插入数据库的插入命令。第一个查询 $query1 已执行,但第二个查询未执行。所以我得到“卖家插入失败”

<?php
$book_author = mysqli_real_escape_string($con, $_POST['b_author']);;
$book_branch = mysqli_real_escape_string($con, $_POST['b_branch']);
$book_edit = mysqli_real_escape_string($con, $_POST['b_edit']);
$book_name = mysqli_real_escape_string($con, $_POST['b_name']);
$book_price = mysqli_real_escape_string($con, $_POST['b_price']);
$book_pub = mysqli_real_escape_string($con, $_POST['b_pub']);
$book_qty = mysqli_real_escape_string($con, $_POST['b_qty']);
$name = mysqli_real_escape_string($con, $_POST['s_name']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$phNo = mysqli_real_escape_string($con, $_POST['phNo']);
$clg = mysqli_real_escape_string($con, $_POST['college']);

$query1 = "INSERT INTO `book_info`(book_author,book_branch,book_edit,book_name,book_price,book_pub,book_qty) VALUES".
"('$book_author','$book_branch','$book_edit','$book_name','$book_price','$book_pub','$book_qty')";

$query2 = "INSERT INTO `seller_info`(seller_name,seller_email,seller_phno,seller_college) VALUES".
"('$name','$email','$phNo','$clg')";
$result1 = mysqli_query($con, $query1);
$result2 = mysqli_query($con, $query2);
if (!$result1)
   echo "Book INSERT failed: $query1";
if (!$result2)
   echo "seller INSERT failed $query2 <br />".
mysql_error() . "<br /><br />";

?>

【问题讨论】:

  • 只是猜测,seller_phno 是什么?你是说卖家电话吗?
  • 使用mysqli 时,您应该使用参数化查询和bind_param 将用户数据添加到您的查询中。 请勿使用字符串插值来完成此操作,因为您将创建严重的SQL injection bugs。占位符也避免了你在那里的“转义字符串”调用的巨大混乱。

标签: php mysql database forms


【解决方案1】:

把这个放在失败的查询之后,或者代替echo "seller INSERT failed $query2 &lt;br /&gt;".

echo mysqli_error($con);

这将准确地告诉您错误是什么。 (可能是seller_phno 拼写不正确。)

更多信息可以找到here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-30
    • 2020-02-24
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 2011-04-21
    相关资源
    最近更新 更多