取得时候再分割就好了
比如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中怎么存储数组在线等!急!、怎么把从数据库取出的内容存到一个数组里等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)