PHP JSON数组解码并将数据存储到mysql
我正在解码JSON数组,然后在将数据插入mysql之后使用foreach循环。。。但总是得到“无法保存数据” 请参阅下面的php脚本,了解我尝试过的内容: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":
<?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."'
)
";