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---十四、数据表中字段命名规则的更多相关文章

  1. m_Orchestrate learning system---三十四、使用重定义了$的插件的时候最容易出现的问题是什么

    m_Orchestrate learning system---三十四.使用重定义了$的插件的时候最容易出现的问题是什么 一.总结 一句话总结:如下面这段代码,定义了$的值,还是会习惯性的把$当成jQ ...

  2. m_Orchestrate learning system---二十四、thinkphp里面的ajax如何使用

    m_Orchestrate learning system---二十四.thinkphp里面的ajax如何使用 一.总结 一句话总结:其实ajax非常简单:前台要做的事情就是发送ajax请求过来,后台 ...

  3. SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int

    --SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int --关键说明:--1.从系统表syscolumns中的查询所有xtype='48'的记录得到类型为[tinyint]的字段- ...

  4. 批量替换数据库中所有用户数据表中字段数据类型为char和varchar到nvarchar的脚本

    解决问题:字段类型为char的总是占用指定字节长度(末尾好多空白符号),varchar数据类型长度一个汉字占2个字节,内容存储为中文的字段个人建议全部使用nvarchar. 操作说明:打开SQL Se ...

  5. laravel 字段映射问题,表单中提交字段与数据表中字段不一致

    在遇到提交表单时,表单中的name属性与数据表中的字段不一致,报错, 解决方法: 参考1:提交表单的时候,表单的name属性和数据表字段名称是一样的,这样有什么不妥么? 你数据库的信息给前端透露得越多 ...

  6. 在数据表中字段存有excel、word文件数据,让其随着记录指针移动而改变显示

    这是一个及其简单的问题,可是被绕住了.当记录移动时,装载数据到excel显示数据.这个方法写在哪里?如何触发? datasource.cds等空间的触发都是多次.到现在也没明白如何去做.笨方法: 1. ...

  7. android 检测sqlite数据表中字段(列)是否存在 (转)

    原文摘自 http://www.tuicool.com/articles/jmmMnu 一般数据库升级时,需要检测表中是否已存在相应字段(列),因为列名重复会报错.方法有很多,下面列举2种常见的方式: ...

  8. Linux下修改MySQL数据表中字段属性

    一.修改某个表的字段类型及指定为空或非空 alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空]; alter table 表名称 modify 字段名称 字段类 ...

  9. php base64_encode,serialize对于存入数据表中字段的数据处理方案

    A better way to save to Database $toDatabse = base64_encode(serialize($data)); // Save to database $ ...

随机推荐

  1. 创建逻辑dg

    逻辑备用DG   今天是2014-04-29,近期一直忙的事情,也没来的急写点东西.今天继续整理dg的相关内容,要说的是逻辑dg的创建过程和注意事项. 什么是逻辑dg呢?物理dg类似于主库的完整副本. ...

  2. firewall 允许app访问网络

    https://www.wikihow.com/Block-a-Program-with-Windows-Firewall 打开windows firewall change settings 然后就 ...

  3. NOIp2018之前打模板出现的问题汇总

    灵感来源是因为调试了一下午dij,就想把错误记下来 dij:结构体里的重载运算符不会写      结构体声明后要加引号     用于排序的结构体按照边长度排序 匈牙利:在dfs中的if语句中,要继续搜 ...

  4. python中黏包现象

    #黏包:发送端发送数据,接收端不知道应如何去接收造成的一种数据混乱现象. #关于分包和黏包: #黏包:发送端发送两个字符串"hello"和"word",接收方却 ...

  5. Python笔记(五)

    # -*- coding:utf-8 -*- # 函数 # python中定义函数的规则如下:以def开头,接函数名称和(),传入的参数和变量放在圆括号中间,函数以:起始,并且缩进,return选择性 ...

  6. 当安装了ubuntu操作系统怎么也调用不出中文输入法时,可以用以下方式尝试解决。

    卸载 fcitx sudo apt-get remove fcitx 重启 sudo reboot 重新安装 fcitxsudo apt-get isntall fcitx 安装拼音输入法sudo a ...

  7. Ubuntu16.04下沙盒数据导入到 Neo4j 数据库(图文详解)

    不多说,直接上干货! 参考博客 http://blog.csdn.net/u012318074/article/details/72793914   (表示感谢)  前期博客 Neo4j沙盒实验申请过 ...

  8. 视图 Model转集合

    @{    Layout = null;}@using MvcApplication2.Models <!DOCTYPE html> <html><head>    ...

  9. Struts2简单环境搭建

    一.开篇 Struts2是一个运行于web容器的表示层框架,其核心作用是帮助我们处理Http请求.Struts2处理Http请求(Request),并进行内部处理,再进行Http返回. 下载strut ...

  10. MVC、控件、一般处理程序中的session and cookie

    Mvc中: session: if (!string .IsNullOrEmpty(find)) //设置 Session["oip"] = "无锡"; Vie ...