php json mysql数据库中,使用PHP在MySQL数据库中插入JSON数据

I tried to parse a JSON file using PHP.

Then I would put the extracted data in a MySQL database.

This is my JSON file

{"u":[

{"text":"Chef salad is calling my name, I\u0027m so hungry!",

"id_str":"28965131362770944",

"created_at":"dom gen 23 24:00:00 +0000 2011",

"user":

{"id_str":"27144739",

"screen_name":"LovelyThang80",

"name":"One of A Kind"}},

{....} //Other same code

}

And this is my PHP code

//connect to mysql db

//read the json file contents

//convert json object to php associative array

$data = json_decode($jsondata, true);

//prepare variables for insert

$sqlu = "INSERT INTO user(id_user, screen_name, name)

VALUES ";

$sqlt = "INSERT INTO tweet(id_user, date, id_tweet, text)

VALUES ";

//I analyze the whole array and assign the values to variables

foreach ($data as $u => $z){

foreach ($z as $n => $line){

foreach ($line as $key => $value) {

switch ($key){

case 'text':

$text = $value;

break;

case 'id_str':

$id_tweet = $value;

break;

case 'created_at':

$date = $value;

break;

case 'user':

foreach ($value as $k => $v) {

switch($k){

case 'id_str':

$id_user = $v;

break;

case 'screen_name':

$screen_name = $v;

break;

case 'name':

$name = $v;

break;

}

}

//insert value into table

$sqlu .= "('".$id_user."', '".$screen_name."', '".$name."')";

break;

}

}

//insert value into table

$sqlt .= "('".$id_user."', '".$date."', '".$id_tweet."', '".$text."')";

}

}

?>

But in the table doesn't enter anything!

And if I try:

echo $sqlu;

Output:

INSERT INTO user(id_user, screen_name, name)

VALUES ('27144739', 'LovelyThang80', 'One of A Kind')

INSERT INTO user(id_user, screen_name, name)

VALUES ('27144739', 'LovelyThang80', 'One of A Kind')('21533938', 'ShereKhan77', 'Loki Camina Cielos ')

INSERT INTO user(id_user, screen_name, name)

VALUES ('27144739', 'LovelyThang80', 'One of A Kind')('21533938', 'ShereKhan77', 'Loki Camina Cielos ')('45378162', 'Cosmic_dog', 'Pablo')

And the same for

echo $sqlt;

Why?

解决方案

You forgot to add , between values:

INSERT INTO user(id_user, screen_name, name)

VALUES ('27144739', 'LovelyThang80', 'One of A Kind'), ('21533938', 'ShereKhan77', 'Loki Camina Cielos ')

And you can insert only one INSERT statement at once.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值