如何把数组存进数据库

如何把数组存进数据库,第1张

存可以把数组连成字符串的形式存

取得时候再分割就好了

比如5个数字

update

set

unum="1,2,3,4,5"

取出来以后用split()函数分割

就好了

把数组转换成字符串后再存入数据库

参考函数:

implode() ---把数组转换成字符串

explode() ---把字符串转换成数组

手册里有详细说明

序列化以后存储

对于一维数组可以简单的用

implode

explode

函数做数组——串的变换,但需注意分隔符要使用数组中不存在的字符

对于多维数组可以用序列化函数处理

serialize

unserialize

函数的用法手册中都有

1。先将从数据库中取出的内容,按所属字段赋值给字符串变量(字符串变量的个数等于您取出内容包含的字段数目;

2定义数组;

3。根据字符串变量的个数为循环语句设置循环条件;

4执行循环语句,为数组的每个成员赋值。

(目前我使用的愚蠢的解决办法如下)

建立一个字符串字段——作为存储数组的字段

字符串是用以下的格式书写:

如果数组是12,2,28

就写成 @12@2@28@

如果数组是1,2,3,4,5

就写成 @1@2@3@4@5

到时候,我只需发出这样的查询字符串,就可以解决问题:

SELECT aa from bb WHERE aa like '%@2@%'

就可以找出来所有包含元素2 的数组了。

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

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

1implode()和explode()方式

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

3serialize()和unserialize()方式

4json_encode()和json_decode()方式

假设mysql中test数据库中有个表式score,有数据,我只取第一列的数据出来:

public void mysqlConnection(){

try {

ClassforName("commysqljdbcDriver")newInstance();//数据库驱动

String url = "jdbc:mysql://localhost:3306/test";//数据库链接地址

String user = "root";//用户名

String password = "";//密码

Connection conn = DriverManagergetConnection(url, user, password);//建立connection

Statement stmt = conncreateStatement();

connsetAutoCommit(false);// 更改jdbc事务的默认提交方式

String sql = "select from score";//查询语句

ResultSet rs = stmtexecuteQuery(sql);//得到结果集

conncommit();//事务提交

connsetAutoCommit(true);// 更改jdbc事务的默认提交方式

List<String> list=new ArrayList<String>();//创建取结果的列表,之所以使用列表,不用数组,因为现在还不知道结果有多少,不能确定数组长度,所有先用list接收,然后转为数组

while (rsnext()) {//如果有数据,取第一列添加如list

listadd(rsgetString(1));

}

if(list != null && listsize()>0){//如果list中存入了数据,转化为数组

String[] arr=new String[listsize()];//创建一个和list长度一样的数组

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

arr[i]=listget(i);//数组赋值了。

}

//输出数组

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

Systemoutprintln(arr[i]);

}

}

} catch (Exception e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

保存字节数组到数据库分两步:

第一、利用FileInputStreamread(byte[])方法把内容读取到byte[]数组中,比如是由二进制数组成的,就可以定义为一个字节数组。

第二、在数据库中对应记录字段应该设置为blob类型,这样就能够顺利保存了

事例代码如下:

PreparedStatement

stmt

=

connectiongeneratePreparedStatement("INSERT

INTO

");

stmtsetBytes(1,

yourByteArray);

其中,yourByteArray是你读出来的字符数组。

放到数组我不知道为什么这么做,你数据库的类型都是一样吗?要是整型和字符串你可以放一个数组里?

你可以用结果集取出来放到list集合里

反正放到一个容器里就可以了,最好用个泛型

如:User实体类,你先可以封装到populate的方法里

当然方法名你随便取,

String

sql

=

"select

from

t_user";

List

userlist

=

null;

try{

Connection

conn

=

thisgetConnection;

PreparedStatement

pst

=

connPreparedStatement

(sql);

ResultSet

rs

=

pstexecuteQuery();

userlist

=

new

ArrayList

();

while(rsnext()){

User

user

=

new

User();

usersetId(rsgetInt("id"));

usersetCode(rsgetString("code"));

userlistadd(user);

}

thisgetClose(conn,pst,rs);

}catch(Exception

e){

printStackTrace();

}

return

userlist;

我手打的个别打错了你在开发工具里看看

以上就是关于如何把数组存进数据库全部的内容,包括:如何把数组存进数据库、mysql中怎么存储数组在线等!急!、怎么把从数据库取出的内容存到一个数组里等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存