为什么这个keep给出语法错误或$_end错误


<?php
if(isset($_POST['update']))
$dbhost = 'localhost';
$dbuser = 'XXXXX';
$dbpass = 'XXXXX';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
if(! get_magic_quotes_gpc() )
{
 $OrderID=addslashes ($_POST['OrderID']); 
 $trackingnumber= addslashes ($_POST['trackingnumber']);
 $trackingURL=addslashes ($_POST['trackingURL']); 
 $CustomerName=addslashes ($_POST['CustomerName']); 
 $LocationShipped=addslashes ($_POST['LocationShipped']); 
 $user_email=addslashes ($_POST['user_email']); 
 $ShipmentDate=addslashes ($_POST['ShipmentDate']);
 $ShipmentMode=addslashes ($_POST['ShipmentMode']);  
 $CurrentStatus=addslashes ($_POST['CurrentStatus']);
}
else
{
 $trackingnumber= $_POST['trackingnumber'];
 $trackingURL=$_POST['trackingURL']; 
 $OrderID=$_POST['OrderID']; 
 $CustomerName=$_POST['CustomerName']; 
 $user_email=$_POST['user_email']; 
 $LocationShipped=$_POST['LocationShipped']; 
 $ShipmentDate=$_POST['ShipmentDate'];
 $ShipmentMode=$_POST['ShipmentMode'];  
 $CurrentStatus=$_POST['CurrentStatus'];
}
$sql = "
    UPDATE
        ordertracking
    SET
        trackingnumber =$trackingnumber,
        `trackingURL` = '" . $trackingURL . "',
        `CustomerName` = '" . $CustomerName . "',
        `LocationShipped` = '" . $LocationShipped . "',
        `user_email` = '" . $user_email . "',
        `ShipmentDate` = '" . $ShipmentDate . "',
        `ShipmentMode` = '" . $ShipmentMode . "',
        `CurrentStatus` = '" . $CurrentStatus . "',
    WHERE
        OrderNo = $OrderID,
$result1 = mysql_query($query1);
mysql_select_db('XXXXXXX');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfullyn";
mysql_close($conn);
?>

解析错误:语法错误,意外T_STRING在/home/buyerhelp/public_html/ordertracking/backend/processseditship .php第46行

请帮忙好吗?

不知道问题是什么,但它真的很令人沮丧,因为我是在我的项目的编辑部分的最后一步,它允许我更新表。我特意省略了引号——trackingnumber =$trackingnumber,所以这不是问题……

您的$sql中没有结束符号"。应该是:

$sql = "
    UPDATE
        ordertracking
    SET
        trackingnumber =$trackingnumber,
        `trackingURL` = '" . $trackingURL . "',
        `CustomerName` = '" . $CustomerName . "',
        `LocationShipped` = '" . $LocationShipped . "',
        `user_email` = '" . $user_email . "',
        `ShipmentDate` = '" . $ShipmentDate . "',
        `ShipmentMode` = '" . $ShipmentMode . "',
        `CurrentStatus` = '" . $CurrentStatus . "'
    WHERE
        OrderNo = $OrderID"; // < missing ";

您使用了,而不是;,并且忘记了一些"

$sql = "
    UPDATE
        `ordertracking`
    SET
        `trackingnumber` = " . $trackingnumber . ",
        `trackingURL` = '" . $trackingURL . "',
        `CustomerName` = '" . $CustomerName . "',
        `LocationShipped` = '" . $LocationShipped . "',
        `user_email` = '" . $user_email . "',
        `ShipmentDate` = '" . $ShipmentDate . "',
        `ShipmentMode` = '" . $ShipmentMode . "',
        `CurrentStatus` = '" . $CurrentStatus . "',
    WHERE
        `OrderNo` = " . $OrderID; // ; instead of ,
$result1 = mysql_query($query1);

替换第50行

   OrderNo = $OrderID";

两个问题

  1. 关闭双引号
  2. 去掉$OrderID
  3. 后面的逗号

所以改变

$sql = "
UPDATE
    ordertracking
SET
    trackingnumber =$trackingnumber,
    `trackingURL` = '" . $trackingURL . "',
    `CustomerName` = '" . $CustomerName . "',
    `LocationShipped` = '" . $LocationShipped . "',
    `user_email` = '" . $user_email . "',
    `ShipmentDate` = '" . $ShipmentDate . "',
    `ShipmentMode` = '" . $ShipmentMode . "',
    `CurrentStatus` = '" . $CurrentStatus . "',
WHERE
    OrderNo = $OrderID,

$sql = "
UPDATE
    ordertracking
SET
    trackingnumber =$trackingnumber,
    `trackingURL` = '" . $trackingURL . "',
    `CustomerName` = '" . $CustomerName . "',
    `LocationShipped` = '" . $LocationShipped . "',
    `user_email` = '" . $user_email . "',
    `ShipmentDate` = '" . $ShipmentDate . "',
    `ShipmentMode` = '" . $ShipmentMode . "',
    `CurrentStatus` = '" . $CurrentStatus . "',
WHERE
    OrderNo = $OrderID";

最新更新