Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:如何解析JSON数据_Php_Mysql_Json_Parsing - Fatal编程技术网

PHP:如何解析JSON数据

PHP:如何解析JSON数据,php,mysql,json,parsing,Php,Mysql,Json,Parsing,我试图将JSON数据发送到PHP服务器,但我可以理解如何在PHP中解析JSON并在Mysql数据库中插入值 下面是我的JSON数据的外观 {"reps_list":{"selected_subcategory_id":[0,1,2]}} 以下是我的PHP代码: $reps_list = $_POST['reps_list']; $reps_list= json_decode($reps_list,TRUE); for($i = 0; $i <= count($array['reps

我试图将JSON数据发送到PHP服务器,但我可以理解如何在PHP中解析JSON并在Mysql数据库中插入值

下面是我的JSON数据的外观

 {"reps_list":{"selected_subcategory_id":[0,1,2]}}
以下是我的PHP代码:

$reps_list = $_POST['reps_list'];
$reps_list= json_decode($reps_list,TRUE);

 for($i = 0; $i <= count($array['reps_list']['selected_subcategory_id']); $i++){
mysqli_query($conn, "INSERT INTO reps VALUES(NULL, '".$array['reps_list']['selected_subcategory_id'][i]."', 1, 1 )");
$reps_list=$_POST['reps_list'];
$reps_list=json_decode($reps_list,TRUE);

对于($i=0;$i对于您的有效的json尝试这样做,将字符串解码为
数组
,与第二个参数true一起使用,使其成为数组,然后在db查询中使用它之前将其作为数组处理

$array = json_decode('{"reps_list":{"selected_subcategory_id":[0,1,2]}}',1);
echo "Main Array after json string decode \n\n";
print_r($array); 
echo "\n\n";
echo "Access selected_subcategory_id \n\n";
print_r($array['reps_list']['selected_subcategory_id']);
输出:

json字符串解码后的主数组

Array
(
    [reps_list] => Array
        (
            [selected_subcategory_id] => Array
                (
                    [0] => 0
                    [1] => 1
                    [2] => 2
                )

        )

)
访问选定的子类别\u id

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
)

演示

对您的有效的json尝试这样做,将字符串解码为
数组
,与第二个参数true一起使用,使其成为数组,然后将其作为数组处理,然后在db查询中使用

$array = json_decode('{"reps_list":{"selected_subcategory_id":[0,1,2]}}',1);
echo "Main Array after json string decode \n\n";
print_r($array); 
echo "\n\n";
echo "Access selected_subcategory_id \n\n";
print_r($array['reps_list']['selected_subcategory_id']);
输出:

json字符串解码后的主数组

Array
(
    [reps_list] => Array
        (
            [selected_subcategory_id] => Array
                (
                    [0] => 0
                    [1] => 1
                    [2] => 2
                )

        )

)
访问选定的子类别\u id

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
)

DEMO

既然你更新了你的帖子,打算
将其插入数据库中,那么以下是有效的方法:

$reps_list = $_POST['reps_list'];
$json = json_decode($reps_list,TRUE);

$arr = $json['reps_list']['selected_subcategory_id'];

$insertWorkout = $mysqli->prepare("INSERT INTO reps (column1, column2, column3) VALUES (?, ?, ?)");
$insertWorkout->bind_param("iii", $arr[0], $arr[1], $arr[2]); // iii means they are all integers
$insertWorkout->execute();

既然您更新了帖子,打算将其插入数据库中,那么以下是有效的方法:

$reps_list = $_POST['reps_list'];
$json = json_decode($reps_list,TRUE);

$arr = $json['reps_list']['selected_subcategory_id'];

$insertWorkout = $mysqli->prepare("INSERT INTO reps (column1, column2, column3) VALUES (?, ?, ?)");
$insertWorkout->bind_param("iii", $arr[0], $arr[1], $arr[2]); // iii means they are all integers
$insertWorkout->execute();
你可以用

foreach($reps_list['selected_subcategory_id'] as $key => $value){

mysqli_query($conn, "INSERT INTO reps VALUES(NULL, '".$value."', 1, 1 )");

}
你可以用

foreach($reps_list['selected_subcategory_id'] as $key => $value){

mysqli_query($conn, "INSERT INTO reps VALUES(NULL, '".$value."', 1, 1 )");

}

这不是有效的json,请发布有效的JSONI如果这是有效的json数据,那么您可以使用,但并非如此。我已经编辑了我的问题并粘贴了有效的json),您有一个SQL注入漏洞。您应该在查询中使用参数,而不是在SQL字符串中插入变量
json_decode()
不保护值。它不是有效的json,请发布有效的JSONI如果这是有效的json数据,那么您可以使用,但事实并非如此。我已编辑了我的问题并粘贴了有效的json)。您有SQL注入漏洞。您应该在查询中使用参数,而不是在SQL字符串中插入变量
json_decode()
不保护值。谢谢你的回答,我更新了我的问题,我想在循环中插入数据,但当我运行代码时,抛出如下异常
未定义索引:我
谢谢你的回答,已经更新了我的问题,我想在循环中插入数据,但当我运行代码时,抛出如下异常
未定义索引:i
抛出此异常
PHP解析错误:语法错误,在/home/asata/public\u html/etsports/data/add_reps.PHP的第28行上出现意外的“$key”(T_变量)
您可以立即尝试抛出此异常
PHP解析错误:语法错误,意外的“$key”(T_变量)在第28行的/home/asata/public_html/etsports/data/add_reps.php中
您可以立即尝试