Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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数组解码并将数据存储到mysql_Php_Mysql_Arrays_Json - Fatal编程技术网

PHP JSON数组解码并将数据存储到mysql

PHP JSON数组解码并将数据存储到mysql,php,mysql,arrays,json,Php,Mysql,Arrays,Json,我正在解码JSON数组,然后在将数据插入mysql之后使用foreach循环。。。但总是得到“无法保存数据” 请参阅下面的php脚本,了解我尝试过的内容: <?php $objConnect = mysql_connect("localhost","",""); $objDB = mysql_select_db("test"); $raw_json = <<<EOT {"data":[ {"PersonName":"first user","PersonEmail":

我正在解码JSON数组,然后在将数据插入mysql之后使用foreach循环。。。但总是得到“无法保存数据”

请参阅下面的php脚本,了解我尝试过的内容:

<?php

$objConnect = mysql_connect("localhost","","");
$objDB = mysql_select_db("test");

$raw_json = <<<EOT
{"data":[
{"PersonName":"first user","PersonEmail":"first@user.tld"},
{"PersonName":"second user","PersonEmail":"second@user.tld"}
]}
EOT;

// $raw_json = $_POST["allData"]; -- passing parameter

$json = json_decode($raw_json);
// echo json_encode($json); --- getting

foreach($json->data as $item){
// echo json_encode($item); --- getting
  $strPersonName = $item->PersonName;
// echo json_encode($strPersonName); --- getting
  $strPersonEmail = $item->PersonEmail;
// echo json_encode($strPersonEmail); --- getting

/*** Insert ***/
$strSQL = "insert into person (PersonName,PersonEmail)
values (
'".$strPersonName."',
'".$strPersonEmail."',
)
";

$objQuery = mysql_query($strSQL);
if(!$objQuery)
{
$arr['StatusID'] = "0";
$arr['Message'] = "Cannot save data";   
}
else
{
$arr['StatusID'] = "1";
$arr['Message'] = "Data stored successfully";
}
}

mysql_close($objConnect);
echo json_encode($arr);
?>

当我使用下面的php脚本时,我能够将数据存储到服务器,请检查:

<?php
$objConnect = mysql_connect("localhost","","");
$objDB = mysql_select_db("test");

$_POST["sPersonName"] = "demo";
$_POST["sPersonEmail"] = "deom@demo.tld";

$strPersonName = $_POST["sPersonName"];
$strPersonEmail = $_POST["sPersonEmail"];

/*** Insert ***/
$strSQL = "INSERT INTO person (PersonName, PersonEmail) 
    VALUES (
        '".$strPersonName."',
        '".$strPersonEmail."'
        )
    ";

$objQuery = mysql_query($strSQL);
if(!$objQuery)
{
    $arr['StatusID'] = "0"; 
    $arr['Message'] = "Cannot save data!";  
}
else
{
    $arr['StatusID'] = "1"; 
    $arr['Message'] = "Data stored successfully";   
}

/**
    $arr['StatusID'] // (0=Failed , 1=Complete)
    $arr['Error'] // Error Message
*/

mysql_close($objConnect);

echo json_encode($arr);
?>


那么原因是什么呢?为什么我在解码json数组时无法将数据存储到mysql表中?

在最后一个值后面有一个逗号

改变

$strSQL = "insert into person (PersonName,PersonEmail)
values (
'".$strPersonName."',
'".$strPersonEmail."',
)
";
进入


那么,你到底遇到了什么问题?php/mysql出现了什么错误?请,请,请:
mysql
已被弃用。停止使用它。使用一个支持准备好的陈述的扩展,如果你对注射有一点点关心的话。我没有注意到,无论如何,谢谢你指出我的错误:)我已经勾选了有用的,很快我会接受你的回答(在接下来的8分钟内)!'
$strSQL = "insert into person (PersonName,PersonEmail)
values (
'".$strPersonName."',
'".$strPersonEmail."'
)
";