【问题标题】:Why does this keep give syntax error or $_end error?为什么这会一直给出语法错误或 $_end 错误?
【发布时间】:2013-05-23 12:46:27
【问题描述】:
<?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 successfully\n";
mysql_close($conn);
?>

解析错误:语法错误,第 46 行 /home/buyerherel/public_html/ordertracking/backend/processeditship.php 中的意外 T_STRING

有什么帮助吗?

不确定问题出在哪里,但这真的很令人沮丧,因为我正处于项目编辑部分的最后一步,它允许我更新表格。 我故意在这里省略了引号 - trackingnumber =$trackingnumber, 所以这不是问题..

【问题讨论】:

  • 因为$sql的声明末尾没有关闭引号?
  • 您的一条查询已(不小心?)被您删除。它以 `OrderNo = $OrderID` 结尾,暗示还有另一个 WHERE 条件要遵循
  • 看颜色...

标签: php sql syntax sql-update


【解决方案1】:

$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 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册以获取正确的语法使用在第 12 行的“WHERE 'OrderNo' = 12345888884' 附近”
  • WHERE 前不应该是逗号
  • 还没看过,谢谢@JeffHawthorne。答案已更新
  • 杰夫,我欠你一杯啤酒 :) 谢谢大家的帮助!现在会带着更多问题回来:)
  • @user2413575 你是新来的,所以让我送你去阅读这部分常见问题:stackoverflow.com/faq#howtoask
【解决方案2】:

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

$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);

【讨论】:

    【解决方案3】:

    只需替换第 50 行

       OrderNo = $OrderID";
    

    通过此代码

    【讨论】:

      【解决方案4】:

      两个问题

      1. 关闭双引号
      2. 删除 $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,
      

      $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";
      

      【讨论】:

        猜你喜欢
        • 2019-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-22
        • 1970-01-01
        • 2013-11-14
        • 1970-01-01
        相关资源
        最近更新 更多