提问人:user3427551 提问时间:3/20/2014 最后编辑:user3427551 更新时间:1/29/2023 访问量:104759
如何在mysql数据库中插入json数组
How to insert json array into mysql database
问:
嗨,我正在尝试将json数组插入我的MySQL数据库。我正在从我的 iphone 传递数据,我已将数据转换为 json 格式,并且我使用未插入到我的服务器的 url 将数据传递到我的服务器。
这是我的json数据。
[{“name”:“0”,“phone”:“dsf”,“city”:“sdfsdf”,“email”:“dsf”},{“name”:“13123123”,“phone”:“sdfsdfdsfsdsd”,“city”:“sdfsf”,“email”:“13123123”}]
这是我的 Php 代码。
<?php
$json = file_get_contents('php://input');
$obj = json_decode($data,true);
//Database Connection
require_once 'db.php';
/* insert data into DB */
foreach($obj as $item) {
mysql_query("INSERT INTO `database name`.`table name` (name, phone, city, email)
VALUES ('".$item['name']."', '".$item['phone']."', '".$item['city']."', '".$item['email']."')");
}
//database connection close
mysql_close($con);
//}
?>
我的数据库连接代码。
<?php
//ENTER YOUR DATABASE CONNECTION INFO BELOW:
$hostname="localhost";
$database="dbname";
$username="username";
$password="password";
//DO NOT EDIT BELOW THIS LINE
$link = mysql_connect($hostname, $username, $password);
mysql_select_db($database) or die('Could not select database');
?>
请告诉我在上面的代码中做错了什么,基本上我不是php开发人员,我是移动应用程序开发人员,所以我使用php作为服务器端脚本,请告诉我如何解决这个问题。
答:
3赞
web-nomad
3/20/2014
#1
没有这样的变量。尝试$data
$obj = json_decode($json,true);
休息看起来不错。如果错误仍然存在,请启用 .error_reporting
评论
1赞
Abhik Chakraborty
3/20/2014
好渔获!!即使我在本地尝试了他的代码,但我在检查它时正确无误,以至于他使用了错误的变量名称!
16赞
Amit
3/20/2014
#2
$json = file_get_contents('php://input');
$obj = json_decode($json,true);
我认为您传递了错误的变量。您应该如上所示传入。$json
json_decode
-3赞
MrPostman
2/3/2015
#3
$string=mysql_real_escape_string($json);
评论
0赞
Nico Haase
5/23/2019
你能进一步解释一下你的代码吗?它有什么作用,是什么让你认为它解决了问题?
9赞
Ocpd Manxoloh
11/30/2016
#4
缺少 JSON 源文件。创建一个 JSON 文件,然后将其分配给 var data:
<?php
require_once('dbconnect.php');
// reading json file
$json = file_get_contents('userdata.json');
//converting json object to php associative array
$data = json_decode($json, true);
// preparing statement for insert query
$st = mysqli_prepare($connection, 'INSERT INTO users(firstname, lastname, gender, username) VALUES (?, ?, ?, ?)');
// bind variables to insert query params
mysqli_stmt_bind_param($st, 'ssss', $firstname, $lastname, $gender, $username);
// processing the array of objects
foreach ($data as $user) {
$firstname = $user['firstname'];
$lastname = $user['lastname'];
$gender = $user['firstname'];
$username = $user['username'];
// executing insert query
mysqli_stmt_execute($st);
}
评论
0赞
Martijn Pieters
11/30/2016
与这里的其他两个答案相比,这提供了什么?
-3赞
Rohit Ghodadra
5/23/2019
#5
header("Access-Control-Allow-Origin: http://localhost/rohit/");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
//files needed to connect to database
include_once 'config/database.php';
include_once 'objects/main.php';
//get Database connection
$database = new Database();
$db = $database->getConnection();
//instantiate product object
$product = new Product($db);
//get posted data
$data = json_decode(file_get_contents("php://input"));
//set product property values
$product->b_nm = $data->Business_Name;
$product->b_pno = $data->Business_Phone;
$product->b_ads = $data->Business_Address;
$product->b_em = $data->Business_Email;
$product->b_typ = $data->Business_Type;
$product->b_ser = $data->Business_Service;
$name_exists = $product->nameExists();
if($name_exists){
echo json_encode(
array(
"success"=>"0",
"message" => "Duplicate Record Not Exists."
)
);
} else{
if($product->b_nm != null && $product->b_pno != null && $product->b_ads != null && $product->b_em != null && $product->b_typ != null && $product->b_ser != null){
if($product->create()){
//set response code
http_response_code(200);
//display message: Record Inserted
echo json_encode(array("success"=>"1","message"=>"Successfully Inserted"));
}
}
else{
//set response code
http_response_code(400);
//display message: unable to insert record
echo json_encode(array("success"=>"0","message"=>"Blank Record Not Exists."));
}
}
评论
0赞
Nico Haase
5/23/2019
你能进一步解释一下你的代码吗?它如何在数据库中插入任何内容?
0赞
Rohit Ghodadra
5/23/2019
@NicoHaase查看编辑后的代码。数据库连接文件位于另一个文件夹中
0赞
Nico Haase
5/23/2019
我认为如果没有这些额外的文件,任何人都无法使用您的代码。我没有要求你提供更多的代码,而是提供一个解释——这就是让其他人从你的答案中学习的原因
1赞
ADyson
8/12/2020
此答案中 90%-100% 的代码与问题无关。任何可能相关的内容似乎都隐藏在此处未显示的其他文件中。也许你并没有真正理解问题的要点。
0赞
SaiSurya
4/16/2020
#6
很简单,您可以插入 json 数据类型,如下所示。参考链接:点击这里了解更多详情
insert into sgv values('c-106', 'admin','owner',false,'[{"test":"test"},
{"test":"test"}]',0,'pasds');
评论