【问题标题】:php parse Syntax error T_ENCAPSED_AND_WHITESPACE [duplicate]php解析语法错误T_ENCAPSED_AND_WHITESPACE [重复]
【发布时间】:2017-10-21 04:58:48
【问题描述】:

您好,我的代码中有语法错误

解析错误:语法错误,意外的 '' (T_ENCAPSED_AND_WHITESPACE),在第 43 行的 C:\xampp\htdocs\project\addProduct.php 中需要标识符 (T_STRING) 或变量 (T_VARIABLE) 或数字 (T_NUM_STRING)

这是我的代码

mysqli_query($db_connect, "INSERT INTO `product` (`pname`, `pid`, `disc`, `price`, `size`, `tage`, `remarks`, `catid`, `img1`, `img2`, `img3`)
                values('$_POST[pname]','$_POST[pid]','$_POST[pdisc]','$_POST[pprice]','$_POST[page]','$_POST[prem]','$_POST[psize]' ,'$_POST[pcat]',
                '$_FILES['img1']['name']','$_FILES['img2']['name']','$_FILES['img3']['name']')");

【问题讨论】:

  • 警告: 使用 mysqli 时,您应该使用 parameterized queriesbind_param 将用户数据添加到查询中。不要使用字符串插值或连接来完成此操作,因为您创建了一个严重的SQL injection bug切勿$_POST$_GET任何用户数据直接放入查询中,因为如果有人试图利用您的错误,这可能非常有害。

标签: php mysqli


【解决方案1】:

要解决您当前的问题,请从您的 $_FILES 数组中删除单引号:

mysqli_query($db_connect, "INSERT INTO `product` (`pname`, `pid`, `disc`, `price`, `size`, `tage`, `remarks`, `catid`, `img1`, `img2`, `img3`)
                values('$_POST[pname]','$_POST[pid]','$_POST[pdisc]','$_POST[pprice]','$_POST[page]','$_POST[prem]','$_POST[psize]' ,'$_POST[pcat]',
                '$_FILES[img1][name]','$_FILES[img2][name]','$_FILES[img3][name]')");

为了解决您的主要问题,read this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 2020-02-07
    • 2014-11-08
    相关资源
    最近更新 更多