语法错误,插入语句中意外的“”(T_ENCAPSED_AND_WHITESPACE)


syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE) in Insert statement

我试图使用插入语句将会话中的数据插入到数据库中。我有从登录屏幕传递的数据,该屏幕存储在名为"login_user"的会话变量中。我还有一个名为"书籍"的会话,它存储多个变量,例如 ISBN 编号、书籍的标题和价格。

我有以下代码:

<?php
session_start();
include_once("config.php");
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>View shopping cart</title>
<link href="style/style.css" rel="stylesheet" type="text/css"></head>
<body>

<br>
<div id="books-wrapper">
<!-- #content to center the menu -->
<div id="content">
    <!-- This is the actual menu --> 
    <ul id="darkmenu">
          <li><a href="home.php">Home</a></li>
          <li><a href="catalogue.php">Catalogue</a></li>
          <li><a href="search.php">Search</a></li>
          <li><a href= "view_cart.php">Cart</a></li>
          <li><a href="#">Orders</a></li>
    </ul>
    <div id = "welcome" >
    Welcome, <?=$_SESSION['login_user']?>! <br> <a href="logout.php">Logout</a>
    </div>
</div>
<br><br>
 <h1 id = "mainHeader" >View Cart</h1>
 <br>
 <div class="view-cart">
    <?php
    $current_url = base64_encode($url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
    if(isset($_SESSION["books"]))
    {
        if(isset($_POST['submit_btn']) ){
            $sql = "INSERT INTO `orders` (`OrderNo`, `BookName`, `Quantity`, `TotalPrice`, `ISBN`, `StudentID`) VALUES (NULL, '$obj->Title', '$cart_itm['quantity']', '$total', '$ISBN', '$_SESSION['login_user']');";
        }else {
        $total = 0;
        echo '<form method="post" action="">';
        echo '<ul>';
        $cart_items = 0;
        foreach ($_SESSION["books"] as $cart_itm)
        {
           $ISBN = $cart_itm["ISBN"];
           $results = $mysqli->query("SELECT Title,BookDesc,Price FROM books WHERE ISBN='$ISBN'");
           $obj = $results->fetch_object();
            echo '<li class="cart-itm">';
            echo '<span class="remove-itm"><a href="cart_update.php?removep='.$cart_itm["ISBN"].'&return_url='.$current_url.'">&times;</a></span>';
            echo '<div class="p-Price">'.$currency.$obj->Price.'</div>';
            echo '<div class="book-info">';
            echo '<h3>'.$obj->Title.' (ISBN :'.$ISBN.')</h3> ';
            echo '<div class="p-quantity">Quantity : '.$cart_itm["quantity"].'</div>';
            echo '<div>'.$obj->BookDesc.'</div>';
            echo '</div>';
            echo '</li>';
            $subtotal = ($cart_itm["Price"]*$cart_itm["quantity"]);
            $total = ($total + $subtotal);
            echo '<input type="hidden" name="item_name['.$cart_items.']" value="'.$obj->Title.'" />';
            echo '<input type="hidden" name="item_code['.$cart_items.']" value="'.$ISBN.'" />';
            echo '<input type="hidden" name="item_desc['.$cart_items.']" value="'.$obj->BookDesc.'" />';
            echo '<input type="hidden" name="item_quantity['.$cart_items.']" value="'.$cart_itm["quantity"].'" />';
            $cart_items ++;
        }
        echo '</ul>';
        echo '<span class="check-out-txt">';
        echo '<strong>Total : '.$currency.$total.'</strong>  ';
        echo '</span>';
        echo '<button name="sumbit_btn" class="save_order">Save Order</button>';
        echo '</form>';
    }else{
        echo 'Your Cart is empty';
    }
    }

    ?>
    </div>
</div>
</body>
</html>

但是我的插入语句似乎不起作用。我得到第 43 行的( ! ) Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING),即插入语句

我确实有一个名为目录的页面,其中变量被实例化,但这些变量随后被传递到上面的视图购物车页面上。

知道这句话有什么问题吗?

将第

43 行替换为

$sql = "INSERT INTO `orders` (`OrderNo`, `BookName`, `Quantity`, `TotalPrice`, `ISBN`, `StudentID`) VALUES (NULL, '{$obj->Title}', '{$cart_itm['quantity']}', '{$total}', '{$ISBN}', '{$_SESSION['login_user']}');";

并记住清理您的变量!

只需将 43 行替换为以下代码

$sql = "INSERT INTO `orders` (`OrderNo`, `BookName`, `Quantity`, `TotalPrice`, `ISBN`, `StudentID`) VALUES (NULL, $obj->Title, $cart_itm['quantity'], $total, $ISBN, $_SESSION['login_user']);";

让我知道它是否有效?