解析错误在第17行如何修复它


parsing error at line 17 how to fix it

在第17行显示解析错误,我已经彻底检查了它,但无法找到错误。如何修正这个错误。它是insert_city_query.php

<?php
    include('../../Connections/autodealers.php');
    //error_reporting(0);
    $cityname=$_POST['cityname'];
    $cityorder=$_POST['cityorder'];
    $status=$_POST['status'];
    if($status="Enabled")
    $status=1;
    else
    $status=0;
    $query = "INSERT INTO ".$db_prefix."city (cityname,cityorder,status) values
    (
    '" . addslashes($cityname) . "' ,
    '" . addslashes($cityorder) . "' ,
    '" . addslashes($status) . " '  
    WHERE LCASE='strtolower($_REQUEST['cityname'])')";
    echo $query;
    $result=mysql_query($query);
    if(!$result)
    {
    die ('ERROR: '.mysql_error());
    header("Location: " .$base_url. "admin/city_insert.php" );//if query fails
    }
    else
    {
    header("Location: " .$base_url. "admin/cities.php" );//if query suceeds
    }
    mysql_close($autodealers);

    ?>

将查询改为,

$query = "INSERT INTO ".$db_prefix."city (cityname,cityorder,status) values
('" . addslashes($cityname) . "' ,
'" . addslashes($cityorder) . "' ,
'" . addslashes($status) . " '  
WHERE LCASE='" . strtolower($_REQUEST['cityname']) . "')";

注意:请不要在新代码中使用mysql_*函数。它们不再被维护,并被正式弃用。见红框?学习预处理语句,并使用PDO或MySQLi——本文将帮助您决定使用哪一种。如果你选择PDO,这里有一个很好的教程。

警告:如果变量的值(s)来自外部,则SQL Injection的查询是脆弱的。请看看下面的文章,了解如何防止它。

    如何防止SQL注入在PHP?

不能使用strtolower()作为函数

你应该改变这一行:

WHERE LCASE='strtolower($_REQUEST['cityname'])')";

WHERE LCASE='".strtolower($_REQUEST['cityname'])."')";