【发布时间】:2020-04-03 06:54:45
【问题描述】:
我一直在互联网上搜索如何使我的数据库的 php 代码正常工作,但我无法理解它!这就是为什么我别无选择,只能问一个问题,我希望有人能在这件事上帮助我或指导我。非常感谢任何帮助!
问题: 我想在mysql数据库中插入一个JSON格式的数据。
Android 中的字符串请求代码
public void insertCartProducttoDatabase() {
StringRequest stringRequest = new StringRequest(Request.Method.POST,
Constants.cartdata_url,
new com.android.volley.Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
if (!jsonObject.getBoolean("error")) {
Toast.makeText(getApplicationContext(),
jsonObject.getString("message"),
Toast.LENGTH_LONG).show();
finish();
} else {
Toast.makeText(getApplicationContext(),
jsonObject.getString("message"),
Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("response", "" + error);
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put(KEY_VC_ARRAY, convertedArray);
//params.put(KEY_VC_BRANCH, branchid);
return params;
}
};
RequestHandler.getInstance(this).addToRequestQueue(stringRequest);
}
logcat 结果:这是来自我的回收站视图的数组结果
[
{
"productname": "Siopao",
"quantity": "3",
"totalprice": 1500
},
{
"productname": "Siomai",
"quantity": "3",
"totalprice": 297
},
{
"productname": "Burger",
"quantity": "4",
"totalprice": 200
}
]
PHP 代码 DB Operations.php (UPDATEDv2)
//INSERT CART PRODUCTS
public function insertIndividualCart($cartarray){
$receivedArray = $_POST['cartarray'];
$new_array = json_decode($receivedArray,true);
var_dump($new_array);
$stmt = $this->con->prepare("INSERT INTO `cart_data` (`cartid`, `productname`, `quantity`, `totalprice`, `created`)
VALUES (NULL, ?, ?, ?, CURRENT_TIMESTAMP )");
foreach($new_array as $row){
$stmt->bind_param('ssi', $row['productname'], $row['quantity'], $row['totalprice']);
if($stmt->execute()){
return 1;
}else{
return 2;
}
}
}
PHP 代码 cartData.php
<?php
require_once '../DbOperations.php';
$response = array();
if($_SERVER['REQUEST_METHOD']=='POST'){
if(
isset($_POST['cartarray'])
){
//operations data
$db = new DbOperations();
$result = $db->insertIndividualCart(
$_POST['cartarray']
);
if($result == 1){
$response['error'] = false;
$response['message'] = "Success";
}elseif($result == 2){
$response['error'] = true;
$response['message'] = "Failed, Error Occured";
}
}else{
$response['error'] = true;
$response['message'] = "Required Field are missing";
}
}else{
$response['error'] = true;
$response['message'] = "Invalid Request";
}
echo json_encode($response);
我知道我的 php 代码 Dboperation.php 是错误的。只是我不知道如何开始我看到了一个视频,我必须首先解码来自 android 的数组,然后使用 foreach 和内部使用 Insert,我无法理解的是如何在我的数组上使用绑定参数刚刚解码?还是我需要?因为我的理解是为了让我的代码正常工作,我需要根据我在公共函数中使用的参数来使用绑定参数,对吗? (idk 什么叫我所说的公共函数就像这个“公共函数 insertIndividualCart($cartarray){}”)我只是一个初学者,所以放轻松!我别无选择,只能问,因为我真的无法理解他们在帖子中所做的事情。
【问题讨论】:
-
请回复先生!我想我已经知道如何在数据库中插入单行,因为我已经在我的其他函数上做了它,先生,我的问题是如何插入来自 json 的数据或多个数据先生
-
你的 SQL 中的
".$row["productname"]."是什么?你为什么拥有它?为什么要循环准备。不,你不知道如何在 SQL 中包含变量。再看一下链接的帖子。 -
哦对不起先生,它只是在视频中他是如何做到的,我只是使用它我会再次看到链接先生
-
也是循环先生,我刚刚在另一篇关于在阵列上绑定参数的帖子中看到了先生,但我真的不知道我在做什么我只是尝试过,先生,你能指导我先生吗怎么开始呢?