m_Orchestrate learning system---十四、数据表中字段命名规则
m_Orchestrate learning system---十四、数据表中字段命名规则
一、总结
一句话总结:a、保证唯一
b、见名知意
1、注意php中的数组类函数和字符串类函数的前缀?
数组类函数的前缀是 array_,而不是arr_,例如 array_merge()函数,
字符串类函数的前缀是str_,而不是string_,例如str_replace()函数
原因应该是string太长了,不便于做前缀,而array的话刚好可以做前缀,故不用缩写
2、str_replace()函数如何使用?
str_replace()函数有点意识,前两个参数都可以是数组
说明整个php函数体系对数组的支持还是比较好的
1 <?php
2 // 替换顺序
3 $str = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
4 $order = array("\r\n", "\n", "\r");
5 $replace = '<br />';
6
7 // 首先替换 \r\n 字符,因此它们不会被两次转换
8 $newstr = str_replace($order, $replace, $str);
9
10 // 输出 F ,因为 A 被 B 替换,B 又被 C 替换,以此类推...
11 // 由于从左到右依次替换,最终 E 被 F 替换
12 $search = array('A', 'B', 'C', 'D', 'E');
13 $replace = array('B', 'C', 'D', 'E', 'F');
14 $subject = 'A';
15 echo str_replace($search, $replace, $subject);
16
17 // 输出: apearpearle pear
18 // 由于上面提到的原因
19 $letters = array('a', 'p');
20 $fruit = array('apple', 'pear');
21 $text = 'a p';
22 $output = str_replace($letters, $fruit, $text);
23 echo $output;
24 ?>
1、str_replace()的常用参数:
如果 search
和 replace
为数组,那么 str_replace() 将对 subject
做二者的映射替换。如果 replace
的值的个数少于 search
的个数,多余的替换将使用空字符串来进行。如果 search
是一个数组而 replace
是一个字符串,那么 search
中每个元素的替换将始终使用这个字符串。该转换不会改变大小写。
如果 search
和 replace
都是数组,它们的值将会被依次处理。
search
-
查找的目标值,也就是 needle。一个数组可以指定多个目标。
replace
-
search
的替换值。一个数组可以被用来指定多重替换。 subject
-
执行替换的数组或者字符串。也就是 haystack。
如果
subject
是一个数组,替换操作将遍历整个subject
,返回值也将是一个数组。 count
-
如果被指定,它的值将被设置为替换发生的次数。
2、常用三个参数,顺序依次为:search,replace,subject(全文)
3、subject在最后面,说明php的开发者倾向把函数中的全文放在后面
4、肯定要先找到才能替换,故search肯定在replace前面
3、thinkphp中where如何使用?
1 Db::table('think_user')
2 ->where('id','>',1)
3 ->where('name','thinkphp')
4 ->select();
1、where还是用的键值对的形势,事实上thinkphp里面有太多都是键值对的形势了
2、因为比较有符号的问题,那么符号肯定在键值对中间
3、数字是不用加引号的,其它一律单引号
4、where支持数组,还是那种键值对的形式
4、数据表如何命名,数据表中字段如何命名?
数据表中表字段加上表名的一个字母
比如group表,那么所有字段前面都加上一个g,比如gname
这样做在多个表join查询的时候会很方便,不然就是下面的效果
$data=db('group')->alias('g')->join('user u','u.id=g.tid')->field('u.picture as pic1,g.picture,username,g.name,g.id,g.slogan,g.description,g.time,g.tid,g.snumber')->where('tid',$id)->paginate(3);
这样太麻烦和浪费时间了
给表中字段加上表名的一个字母
还能少写很多代码
还能避免很多错误,比如:
总原则,尽量保证每一个东西的唯一性,尽量保证每一个字段的唯一性
二、内容在总结中
m_Orchestrate learning system---十四、数据表中字段命名规则的更多相关文章
- m_Orchestrate learning system---三十四、使用重定义了$的插件的时候最容易出现的问题是什么
m_Orchestrate learning system---三十四.使用重定义了$的插件的时候最容易出现的问题是什么 一.总结 一句话总结:如下面这段代码,定义了$的值,还是会习惯性的把$当成jQ ...
- m_Orchestrate learning system---二十四、thinkphp里面的ajax如何使用
m_Orchestrate learning system---二十四.thinkphp里面的ajax如何使用 一.总结 一句话总结:其实ajax非常简单:前台要做的事情就是发送ajax请求过来,后台 ...
- SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int
--SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int --关键说明:--1.从系统表syscolumns中的查询所有xtype='48'的记录得到类型为[tinyint]的字段- ...
- 批量替换数据库中所有用户数据表中字段数据类型为char和varchar到nvarchar的脚本
解决问题:字段类型为char的总是占用指定字节长度(末尾好多空白符号),varchar数据类型长度一个汉字占2个字节,内容存储为中文的字段个人建议全部使用nvarchar. 操作说明:打开SQL Se ...
- laravel 字段映射问题,表单中提交字段与数据表中字段不一致
在遇到提交表单时,表单中的name属性与数据表中的字段不一致,报错, 解决方法: 参考1:提交表单的时候,表单的name属性和数据表字段名称是一样的,这样有什么不妥么? 你数据库的信息给前端透露得越多 ...
- 在数据表中字段存有excel、word文件数据,让其随着记录指针移动而改变显示
这是一个及其简单的问题,可是被绕住了.当记录移动时,装载数据到excel显示数据.这个方法写在哪里?如何触发? datasource.cds等空间的触发都是多次.到现在也没明白如何去做.笨方法: 1. ...
- android 检测sqlite数据表中字段(列)是否存在 (转)
原文摘自 http://www.tuicool.com/articles/jmmMnu 一般数据库升级时,需要检测表中是否已存在相应字段(列),因为列名重复会报错.方法有很多,下面列举2种常见的方式: ...
- Linux下修改MySQL数据表中字段属性
一.修改某个表的字段类型及指定为空或非空 alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空]; alter table 表名称 modify 字段名称 字段类 ...
- php base64_encode,serialize对于存入数据表中字段的数据处理方案
A better way to save to Database $toDatabse = base64_encode(serialize($data)); // Save to database $ ...
随机推荐
- 创建逻辑dg
逻辑备用DG 今天是2014-04-29,近期一直忙的事情,也没来的急写点东西.今天继续整理dg的相关内容,要说的是逻辑dg的创建过程和注意事项. 什么是逻辑dg呢?物理dg类似于主库的完整副本. ...
- firewall 允许app访问网络
https://www.wikihow.com/Block-a-Program-with-Windows-Firewall 打开windows firewall change settings 然后就 ...
- NOIp2018之前打模板出现的问题汇总
灵感来源是因为调试了一下午dij,就想把错误记下来 dij:结构体里的重载运算符不会写 结构体声明后要加引号 用于排序的结构体按照边长度排序 匈牙利:在dfs中的if语句中,要继续搜 ...
- python中黏包现象
#黏包:发送端发送数据,接收端不知道应如何去接收造成的一种数据混乱现象. #关于分包和黏包: #黏包:发送端发送两个字符串"hello"和"word",接收方却 ...
- Python笔记(五)
# -*- coding:utf-8 -*- # 函数 # python中定义函数的规则如下:以def开头,接函数名称和(),传入的参数和变量放在圆括号中间,函数以:起始,并且缩进,return选择性 ...
- 当安装了ubuntu操作系统怎么也调用不出中文输入法时,可以用以下方式尝试解决。
卸载 fcitx sudo apt-get remove fcitx 重启 sudo reboot 重新安装 fcitxsudo apt-get isntall fcitx 安装拼音输入法sudo a ...
- Ubuntu16.04下沙盒数据导入到 Neo4j 数据库(图文详解)
不多说,直接上干货! 参考博客 http://blog.csdn.net/u012318074/article/details/72793914 (表示感谢) 前期博客 Neo4j沙盒实验申请过 ...
- 视图 Model转集合
@{ Layout = null;}@using MvcApplication2.Models <!DOCTYPE html> <html><head> ...
- Struts2简单环境搭建
一.开篇 Struts2是一个运行于web容器的表示层框架,其核心作用是帮助我们处理Http请求.Struts2处理Http请求(Request),并进行内部处理,再进行Http返回. 下载strut ...
- MVC、控件、一般处理程序中的session and cookie
Mvc中: session: if (!string .IsNullOrEmpty(find)) //设置 Session["oip"] = "无锡"; Vie ...