不把id变成变量

时间:2013-05-14 19:19:03

标签: php mysql

此脚本的目的是获取用户已输入表单的产品的ProductID,已在先前脚本中创建的订单的ID,然后将这两个值放入order_line_item表中。

我发现错误的发生是因为名为' $ db_productid'的变量中没有值。然后当我将此值插入数据库时​​,它会尝试查找具有该ID的产品,它可以链接到该产品,但没有ID为0的产品,因此它返回以下错误:

  

无法添加或更新子行:外键约束失败   (the_shoporder_line_item,CONSTRAINT order_line_item_ibfk_1   FOREIGN KEY(ProductID)REFERENCES productProductID)ON DELETE   CASCADE ON UPDATE CASCADE)

这是我的剧本:

  if (isset($_GET['submit1'])) {
    $dblastid = $_SESSION['lastid'];
    $db_product_name = $_GET['product_name'];

    $query = "SELECT ProductID FROM product WHERE Product_Name = '$db_product_name'";
    $result = mysql_query($query)
            or die(mysql_error());
    $fetch = mysql_fetch_assoc($result);
    $db_productid = $fetch['ProductID'];
    $lastid = $_SESSION['lastid'];

    $query = "INSERT INTO `the_shop`.`order_line_item`(
`OrderID` ,
`ProductID`
)
VALUES (
'$lastid', '$db_productid')";
    $result = mysql_query($query)
            or die(mysql_error());
}

进一步调试后,我发现用户输入表单的字符串确实出现在' $ db_product_name'并且具有此名称的产品位于产品表

中的数据库中

1 个答案:

答案 0 :(得分:1)

出于某种原因,我的老师给人的印象是我们需要插入像这样的变量

.$db_username.意味着用户名将按照用户的意图存储,但在条目之前和之后有点...无论如何现在插入记录而不这样做并且它工作正常...会很有趣让我的老师看到一个工作正常的网站而不这样做:)