语法错误,Insert 语句中出现意外的 '' (T_ENCAPSED_AND_WHITESPACE) [英] syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE) in Insert statement

查看:48
本文介绍了语法错误,Insert 语句中出现意外的 '' (T_ENCAPSED_AND_WHITESPACE)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

我有以下代码:

<!DOCTYPE html><头><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title>查看购物车</title><link href="style/style.css" rel="stylesheet" type="text/css"></head><身体><br><div id="books-wrapper"><!-- #content 使菜单居中 --><div id="内容"><!-- 这是实际的菜单--><ul id="darkmenu"><li><a href="home.php">首页</a></li><li><a href="catalogue.php">目录</a></li><li><a href="search.php">搜索</a></li><li><a href="view_cart.php">购物车</a></li><li><a href="#">订单</a></li><div id = "欢迎" >欢迎,<?=$_SESSION['login_user']?>!<br><a href="logout.php">注销</a>

<br><br><h1 id = "mainHeader" >查看购物车</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['数量']', '$total', '$ISBN', '$_SESSION['login_user']');";}别的 {$总= 0;echo '<form method="post" action="">';echo '

    ';$cart_items = 0;foreach ($_SESSION["books"] 作为 $cart_itm){$ISBN = $cart_itm["ISBN"];$results = $mysqli->query("SELECT Title,BookDesc,Price FROM books WHERE ISBN='$ISBN'");$obj = $results->fetch_object();echo '
  • ';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 '

    '.$obj->Title.'(ISBN :'.$ISBN.')

    ';echo '<div class="p-quantity">数量:'.$cart_itm["quantity"].'</div>';echo '<div>'.$obj->BookDesc.'</div>';回声'</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++;}回声'</ul>';echo '';echo '<strong>总计:'.$currency.$total.'</strong>';echo '</span>';echo '<button name="sumbit_btn" class="save_order">保存订单</button>';echo '</form>';}别的{echo '你的购物车是空的';}}?>

</html>

但是我的插入语句似乎不起作用.我在第 43 行收到 ( ! ) 解析错误:语法错误,意外的 '' (T_ENCAPSED_AND_WHITESPACE),需要标识符 (T_STRING) 或变量 (T_VARIABLE) 或数字 (T_NUM_STRING),这是插入语句

我确实有一个名为 Catalog 的页面,其中变量被实例化,但这些变量随后被传递到上面的查看购物车页面.

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

解决方案

将第 43 行替换为

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

记得清理你的变量!

Im trying to insert data from sessions into a database using an insert statement. I have data passed from a login screen which is stored in a session variable called "login_user". I also have a session called "books" which stores multiple variables such as the ISBN number, Title and Price of a book.

I have the following code:

<?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>

However my insert statement doesnt seem to work. I get the ( ! ) Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) on line 43 which is the insert statement

I do have a page called Catalogue where the variables are instantiated but these are then passed onto the view cart page which is above.

Any idea whats wrong with the statement?

解决方案

replace line 43 with

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

And remember to sanitize your variables!

这篇关于语法错误,Insert 语句中出现意外的 '' (T_ENCAPSED_AND_WHITESPACE)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
PHP最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆