【问题标题】:Is it possible to concatenate this INSERT query in and out of a if statment?是否可以在 if 语句中连接这个 INSERT 查询?
【发布时间】:2014-03-11 09:14:00
【问题描述】:

我对这个愚蠢的查询有一些问题,想知道是否可以在 IF 语句内部和外部连接以下 INSERT 查询以完成其余的查询。所以我希望 $orderid 插入到 if 语句中,其余的最后 3 个变量在 IF 之外

if(isset($_POST['Submit'])){

    $orderid=mysql_insert_id();

    $sql = mysql_query("SELECT * FROM course WHERE serial='$serial'") or die(mysql_error()); 
    $fetch = mysql_fetch_assoc($sql);
    $serial = $fetch['serial'];
    $price = $fetch['price'];

    mysql_query("INSERT into course_order_detail values ('$orderid','$serial','1','$price')") or die(mysql_error()); 

}

哦,$orderid 来自用我的代码编写的上一个插入查询。

【问题讨论】:

  • 一般建议:您使用旧的、已弃用且不安全的 mysql 扩展名。开始改用mysqliPDO 并了解准备好的语句。
  • 好的一定会去看看的

标签: php sql insert concatenation


【解决方案1】:

这样试试

if(isset($_POST['Submit'])){

    $orderid=mysql_insert_id();

    $sql = mysql_query("SELECT * FROM course WHERE serial='$serial'") or die(mysql_error()); 
    $fetch = mysql_fetch_assoc($sql);
    $serial = $fetch['serial'];
    $price = $fetch['price'];

    $in = mysql_query("INSERT into course_order_detail values ('$orderid')") or die(mysql_error()); 
    $new_id = mysql_insert_id();
}

$up = mysql_query("UPDATE course_order_detail SET serial='$serial',quantity='1',price='$price' WHERE orderid = ".$new_id);

【讨论】:

  • 我会试一试,让你知道,但从逻辑上讲是有道理的
【解决方案2】:

您可以使用nested insert with select

INSERT `into course_order_detail` SELECT '$orderid', serial, '1', price FROM course WHERE serial='$serial'

顺便说一句清理您的查询

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 2017-10-16
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多