数据库调取字段时数组array存在字段里,所以取出来的字段带双引号json_encode()输出不正常如何去掉双引号

数据库调取字段时数组array存在字段里,所以取出来的字段带双引号json_encode()输出不正常如何去掉双引号,第1张

创建数据库

选择开始菜单中→程序→Management SQL Server 2008→SQL Server Management Studio命令,打开SQL Server Management Studio窗口,并使用Windows或 SQL Server身份验证建立连接。

在对象资源管理器窗口中展开服务器,然后选择数据库节点

右键单击数据库节点,从d出来的快捷菜单中选择新建数据库命令。

执行上述 *** 作后,会d出新建数据库对话框。在对话框、左侧有3个选项,分别是常规、选项和文件组。完成这三个选项中的设置会后,就完成了数据库的创建工作,

在数据库名称文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。

在所有者文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用使用全文索引复选框。

在数据库文件列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的添加、删除按钮添加或删除数据库文件。

切换到选项页、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。

切换到文件组页,在这里可以添加或删除文件组。

完成以上 *** 作后,单击确定按钮关闭新建数据库对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再对象资源管理器窗口看到。

不建议存数组到数据库,可以转为字符串,在存进去,然后取出来,在转为数组

解决方案

将数组转为json格式存在数据库,

<php

$string = json_encode($array);

//存到数据库 *** 作

//然后数据库取出来 *** 作,转为数组

$array = json_decode($string,true);

>

望采纳 Thx

你可以利用java反射机制就可以处理如果我有空就帮你写写看

我简单写了一下

package action;

import javalangreflectField;

import javalangreflectInvocationTargetException;

import javalangreflectMethod;

public class Test {

/

@param args

/

//这是测试主方法

public static void main(String[] args) {

Test test = new Test();

CacheNumber ch = (CacheNumber) testcreateObj(CacheNumberclass,

"capacity=1,count=2,name=wang,montey=213");

Systemoutprintln(chgetCapacity());

Systemoutprintln(chgetName());

Systemoutprintln(chgetCount());

}

public Object createObj(Class cl, String keyAndValue) {

Object te = null;

try {

Class cla = ClassforName(clgetName());

te = clanewInstance();

String[] valueAndName = keyAndValuesplit(",");

for (int i = 0; i < valueAndNamelength; i++) {

Field[] field = clagetDeclaredFields();

for (int k = 0; k < fieldlength; k++) {

Class[] paraTypes = new Class[] { field[k]getType() };

String name = valueAndName[i]substring(0, valueAndName[i]

indexOf("="));

String value = valueAndName[i]substring(valueAndName[i]

indexOf("=") + 1, valueAndName[i]length());

if (field[k]getName()equals(name)) {

String fieldSetter = "set"

+ namesubstring(0, 1)toUpperCase()

+ namesubstring(1, namelength());

Method method = clagetMethod(fieldSetter, paraTypes);

Object[] values = null;

if (field[i]getType()==intclass) {

values = new Integer[] { IntegervalueOf(value) };

}

if (field[i]getType()==Stringclass) {

values = new String[] { value };

}

if (field[i]getType()==doubleclass) {

values = new Double[] { DoublevalueOf(value) };

}

if(field[i]getType()==shortclass){

values = new Short[]{ShortvalueOf(value)};

}

if(field[i]getType()==longclass){

values = new Long[]{LongvalueOf(value)};

}

methodinvoke(te, values);

}

}

}

} catch (ClassNotFoundException e) {

eprintStackTrace();

} catch (SecurityException e) {

eprintStackTrace();

} catch (NoSuchMethodException e) {

eprintStackTrace();

} catch (IllegalArgumentException e) {

eprintStackTrace();

} catch (IllegalAccessException e) {

eprintStackTrace();

} catch (InvocationTargetException e) {

eprintStackTrace();

} catch (InstantiationException e) {

eprintStackTrace();

}

return te;

}

}

//这是你的CacheNumber我又加了几个类型的属性

package action;

public class CacheNumber {

private int capacity;

private int count;

private String name;

private double montey;

public double getMontey() {

return montey;

}

public void setMontey(double montey) {

thismontey = montey;

}

public String getName() {

return name;

}

public void setName(String name) {

thisname = name;

}

public int getCount() {

return count;

}

public void setCount(int count) {

thiscount = count;

}

// 默认构造器

public CacheNumber() {

}

public CacheNumber(int capacity, int count) {

thiscapacity = capacity;

thiscount = count;

}

public int getCapacity() {

return capacity;

}

public void setCapacity(int capacity) {

thiscapacity = capacity;

}

public static void main(String[] args) {

}

}

写的很简单,你看哪块不合适再改一改吧,思路就是这么个思路

首先你要学会查错,最简单的方式就是打印出来看。你可以在第一个变量$arr_ip下一行,把这个变量打印出来看是不是数组,如果是数组,直接存入数据库时就是array,你可以把数组json_encode一下,这样存入进去的就是序列化后的字符串了,但你拿出来时也要json_decode一下,把字符串还原成数组。

最近有一个需求,前端向后台提交json,后台解析并且将提交的值插入数据库中,

难点

1、php解析json(这个不算难点了,网上实例一抓一大把)

2、解析json后,php怎样拿到该拿的值

<php

require

('connectphp');

/

本例用到的数据:

post_array={"order_id":"0022015112305010013","buyer_id":"2","seller_id":"1","all_price":"10000","json_list":[{"product_id":"3","product_number":"3"},{"product_id":"8","product_number":"2"},{"product_id":"10","product_number":"4"}]}

/

$post_array=$_POST['post_array'];

//--解析Json,获取对应的变量值

$obj=json_decode($post_array,TRUE);

$order_id

=

$obj['order_id'];

$buyer_id

=

$obj['buyer_id'];

$seller_id

=

$obj['seller_id'];

$all_price

=

$obj['all_price'];

$i=0;//循环变量

//--得到Json_list数组长度

$num=count($obj["json_list"]);

//--遍历数组,将对应信息添加入数据库

for

($i;$i<$num;$i++)

{

$list_product_id[]=$obj["json_list"][$i]["product_id"];

$list_product_number[]=$obj["json_list"][$i]["product_number"];

$insert_order_product_sql="INSERT

INTO

tbl_order_product

(order_id,product_id,product_number)

VALUES

(,,)";

$result

=

$sqlconn

->

prepare($insert_order_product_sql);

$result

->

bind_param("sss",

$order_id,$list_product_id[$i],$list_product_number[$i]);

$result->execute();

}

//--添加订单信息

$insert_order_sql="INSERT

INTO

tbl_order

(order_id,buyer_id,seller_id,all_price)

VALUES

(,,,)";

$result=$sqlconn->prepare($insert_order_sql);

$result->bind_param("ssss",$order_id,$buyer_id,$seller_id,$all_price);

$result->execute();

$result

->

close();

$sqlconn

->

close();

>

投稿者信息

昵称:

Hola

Email:

jamcistos@outlookcom

PHP将数组存入数据库中的四种方式

最近突然遇到了一个问题,如何用PHP将数组存入到数据库中,经过自己的多方查找和研究,总结了以下四种方法:

1implode()和explode()方式

2print_r()和自定义函数方式

3serialize()和unserialize()方式

4json_encode()和json_decode()方式

以上就是关于数据库调取字段时数组array存在字段里,所以取出来的字段带双引号json_encode()输出不正常如何去掉双引号全部的内容,包括:数据库调取字段时数组array存在字段里,所以取出来的字段带双引号json_encode()输出不正常如何去掉双引号、php往数据库写三维数组、如果动态创建对象,并为对象设置指定的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9516908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存