Php 将数据发布到mysql数据库

Php 将数据发布到mysql数据库,php,android,mysql,sql,Php,Android,Mysql,Sql,我正试图将数据以JSON的形式从android发送到PHP,以便对其进行解析并保存在MySQL数据库中 这是PHP代码的一部分 $JsonString = $_POST["DATA"]; $JsonData = json_decode($JsonString, TRUE); $Add_First_Only = 0; foreach ($JsonData['items'] as $item) { $Order_ID = $item['Order_ID']; $Order_Row_

我正试图将数据以JSON的形式从android发送到PHP,以便对其进行解析并保存在MySQL数据库中

这是PHP代码的一部分

$JsonString = $_POST["DATA"];
$JsonData = json_decode($JsonString, TRUE);

$Add_First_Only = 0;
foreach ($JsonData['items'] as $item)
{
    $Order_ID = $item['Order_ID'];
    $Order_Row_Number = $item['Order_Row_Number'];
    $Order_Item_ID = $item['Order_Item_ID'];
    $Order_Course_ID = $item['Order_Course_ID'];
    $Order_Seat_No = $item['Order_Seat_No'];
    $Order_Row_Value_wo_Options = $item['Order_Row_Value_wo_Options'];
    $Order_Row_Value_with_options = $item['Order_Row_Value_with_options'];

if ($Add_First_Only == 0)
{
    $result = mysqli_query($con,
    "INSERT INTO order_items (Order_ID,Order_Row_Number,Order_Item_ID,Order_Course_ID,Order_Seat_No,Order_Row_Value_wo_Options, Order_Row_Value_with_options) 
    VALUES 
    (['$Order_ID'],['$Order_Row_Number'],['$Order_Item_ID'],['$Order_Course_ID'],
        ['$Order_Seat_No'],['$Order_Row_Value_wo_Options'],['$Order_Row_Value_with_options'])"
    );
    $Add_First_Only = 1;
}
}
这就是我在Eclipse LogCAT上得到的错误

12-16 02:00:01.800:V/TAG(1841):错误:您的SQL语法有错误;在第4行的“['26']、['1']、['1']、['1']、['1']、['1']、['1']、['0']、['1'])附近,查看与MySQL服务器版本对应的手册,以了解要使用的正确语法

正如您从错误中所看到的,我有变量的值,所以它们中的任何一个都是空值


问题是我应该更改或添加什么到我的sql语法来修复此错误?

不要将sql语句中的参数用方括号括起来(例如:
['$Order\u ID']

我经常发现
echo
error\u log
创建的SQL语句并尝试在SQL工具中运行它很有帮助。这将为您提供更好的错误消息,并显示语法错误(如果工具具有语法突出显示)


另外,看看php.net是怎么说的。这种类型的SQL语句容易受到SQL注入攻击,而SQL注入攻击是攻击系统的最常见方式之一。

删除
['$Order\u ID']
和其他括号

对于您的

if ($Add_First_Only == 0)
{
    $result = mysqli_query($con,
    "INSERT INTO order_items (Order_ID,Order_Row_Number,Order_Item_ID,Order_Course_ID,Order_Seat_No,Order_Row_Value_wo_Options, Order_Row_Value_with_options) 
    VALUES 
    ('$Order_ID','$Order_Row_Number','$Order_Item_ID','$Order_Course_ID',
        '$Order_Seat_No','$Order_Row_Value_wo_Options','$Order_Row_Value_with_options')"
    );
    $Add_First_Only = 1;
}

当您在要插入到DB中的数据周围使用单引号“”时,您会告诉PHP该数据是字符串类型的,并且您的数据库可能需要整数数据

您是否尝试过在
值中不使用括号
“$Order\u ID”
而不是
[“$Order\u ID”],
等?请学习使用。你的代码容易受到SQL注入的攻击。这是非常感谢的,如果你把你的评论作为一个答案发布,那么我可以为你接受它,THNX@Fred ii-