利用PHP对数组赋值时下标变量会自动递增的特点,可以很方便用循环将数据存入一个数组。例如:$arr[] = 'a'; 这条语句会将字符a存入数组变量$arr中,如果$arr不存在则会新建一个;若已存在,则将$arr数组的下标变量递增1后存入字符。也就是说,如果已有$arr[0]='a', 那么执行 $arr[] = 'b'; 后,数组其实是进行了$arr[1] = 'b' 的 *** 作。
每个表都应有一个主键字段。主键用于对表中的行(注:列表中的每一行)进行唯一标识。每个主键值(注:行)每在表中必须是唯一的。此外,主键字段不能为空,这是由于数据库引擎需要一个值来对记录进行定位。主键字段永远要被编入索引。这条规则没有例外。你必须对主键字段进行索引,这样数据库引擎才能快速定位给予该键值的行。下面的例子把
personid
字段设置为主键字段。主键字段通常是
id(注:idnetity的缩写,身份标识号码的意思)
号,且通常使用
auto_increment(注:increment,中文意思是增加的意思)
设置。auto_increment
会在新记录(注:)被添加时逐一增加该字段的值。要确保主键字段不为空,我们必须向该字段添加
not
null(注:不为空)
设置。
关系型数据库的特点在于多个表之间使用关系联系起来这样可以显著降低数据库的容量,并提高维护效率主键并不是必须的但是增加主键对单表查询的效率提升很高所以从原理上来说只要该字段绝对不会重复那么使用任何类型的字段,比如你上面所说的人名也是可以的但是如果考虑到与其它表的相互连接使用人名的可 *** 作性就不是很好所以,第一点,建议你另外增加一个自动编号的字段作为id,用来做主键第二点,关系型数据库的特点就是多表之间有冗余,但是实际上是降低了整个数据库的维护难度,鉴于你看起来对关系型数据库原理不清楚更建议你先把关系型数据库原理再看看
创建个表不熟悉,不但慢,还容易出错。并且不直观。真不知道为什么那么多的人喜欢这个玩意。难道就是速度快?安全性好吗?
主键是数据表的唯一索引。
1、建表的时候是这样设置的:
>>create
table
mytable
>>(
>>id
integer
unsigned
not
null
auto_increment,
>>title
varchar(20),key(id)
>>);
就这样,就可以建立主键了。
你使用:>>show
columns
in
mytable进行查看创建的列表
2、如果我们开始建表的时候没有设置任何字段为主键,那么,现在我们要添加一个主键或者说是要让一个字段变为自动编号,哪么该怎么办呢?
>>alter
table
myphpusers
>>modify
column
id
int
unsigned
not
null
auto_increment,
>>add
primary
key(id);
就这样,不但设置了自动编号,同时设置了主键。
由别人提交的数字吗?
如果是由别人提交的话,楼上的方案是不可行的,楼上的办法是必须刚刚执行完数据库写入后,立刻执行方才有效。
那有几种方案可以办到:
一、 第一种方案(这种方案就是通过最大的id来得知最后插入的一行,使用也是有局限性的):
1 前提条件:你表waterelecticmoney 中的id列必须是自动递增的,而且是主键。
2 满足了这个条件后,执行下面的语句,就可以查到最后插入的一行(当然,要把那个function去掉吧,那语句不合适放这儿。):
$data="SELECT `totalmoney` FROM `waterelecticmoney` ORDER BY `id` DESC LIMIT 0, 1";
$query=mysql_query($data);
$total=mysql_fetch_array($query);
echo $total[totalmoney];
二、第二种方案:(是最为可靠、最为可行、也相对比较麻烦的一种方案,看你上一次问的问题,就知道这套程序你已经做了N天了,也有一定效果,现在回来再改,怕是有些困难,但如果都是你自己写的,也没什么大问题)
1 前提条件 ,在数据库这个表中,多加一个字段,字段名称假设为:lasttime, 类型为datetime, 用来记录最后修改时间的。这就需要你在每一个对本表进行修改、插入等程序中加入对这个字段的处理。
2 这样的话,你这个问题就好解决了,还是类似上面的那个语句 :
$data="SELECT `totalmoney` FROM `waterelecticmoney` ORDER BY `lasttime` DESC LIMIT 0, 1";
3 这种方案最为可靠。绝对不会出现不正常或出错的情况。
其实数据库的设计需要在一开始就要有一个系统的计划,专业的设计师们如果有很好的设计理念、设计习惯的话,往往都会先做数据库UML,都需要实现什么功能,也就相应有哪些字段,如果最初设计不到位的话,少了什么重要字段,到后来再添加总是要伤筋动骨的。
去了你们公司的网站看了下,不错。加油,努力。
以上就是关于php将一个长array数组循环插入数据库全部的内容,包括:php将一个长array数组循环插入数据库、数据库中怎么顺序给一个字段赋递增的值、如何用php实现人mysql中提取最近一次录入的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)