当前位置:首页 > >
《PHP&MySQL跨设备网站开发实例精粹》电子书封面

PHP&MySQL跨设备网站开发实例精粹

  • 发布时间:2019年03月29日 09:31:29
  • 作者:陈惠贞,陈俊荣
  • 大小:80.9 MB
  • 类别:PHP编程电子书
  • 格式:PDF
  • 版本:超清扫描版
  • 评分:9.7

    PHP&MySQL跨设备网站开发实例精粹 PDF 超清扫描版

      给大家带来的一篇关于PHP编程相关的电子书资源,介绍了关于实例精粹、网站开发、跨设备、MySQL、php方面的内容,本书是由清华大学出版社出版,格式为PDF,资源大小80.9 MB,陈惠贞,陈俊荣编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.9。

      内容介绍

      PHP&MySQL跨设备网站开发实例精粹

      PHP&MySQL跨设备网站开发实例精粹电子书封面

      读者评价

      我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。

      在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定,但是我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。环境搭建好,当你看见你的浏览器输出“it works"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。

      对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。

      php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理,这样你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。

      内容介绍

      《PHP & MySQL跨设备网站开发实例精粹》从易学实用的角度详细讲解PHP、HTML5语法,MySQL数据库存取;针对网页之间的信息传递、表单的后端处理、HTTP Header、Cookie、Session、文件存取、GD绘图与图像处理、面向对象、使用Ajax、访问MySQL数据库、SQL查询等应用,做了鞭辟入里的讲解;让您克服初学者的迷茫,向专业的程序设计之路迈进。

      为紧跟网站推出“移动版”的潮流,书中列举了如何根据网络设备,自动切换PC版网页和移动版网页,另辟专门章节讲解如何使用jQuery Mobile快速开发移动版网站,以及如何在移动版网站内使用PHP与MySQL进行数据库访问。

      本书最重要的是提供了丰富的网站开发范例,包括建立Google地图应用网站、移动版商品目录、访客留言板、讨论组、文件上传、在线寄信服务、电子贺卡、会员管理系统、在线投票系统、购物车、网络相册等超强范例;满足您应用于各种专题的项目开发或参与程序设计技能竞赛的需求。

      内容节选

      php+mysql开发中的经验与常识小结

       

      本文总结了php+mysql开发中的经验与常识。分享给大家供大家参考,具体如下:

      一、基础规范

      (1)尽量使用 InnoDB 存储引擎

      支持事务、行级锁、并发性能更好,CPU 及内存缓存页优化得当,资源利用率更高

      (2)必须使用 UTF8 字符集

      无需转码,无乱码风险

      (3)数据表、数据字段必须加入中文注释

      N 年后谁知道这个 r1,r2,r3 字段是干嘛的

      (4)尽量不要使用存储过程、视图、触发器、Event

      高并发大数据的互联网业务,架构设计思路是“解放数据库 CPU,将计算转移到服务层”,并发量大的情况下,这些功能很可能将数据库拖死,业务逻辑放到服务层具备更好的扩展性,能够轻易实现“增机器就加性能”。数据库擅长存储与索引,CPU 计算尽量挪到上层

      (5)禁止存储大文件或者大照片

      不要让数据库做它不擅长的事情。大文件和照片存储在文件系统(使用上传服务),数据库里存 URI

      二、命名规范

      (6)库名、表名、字段名:小写,下划线风格,不超过 32 个字符,必须见名知意,禁止拼音英文混用

      (7)表名简洁清晰,非唯一索引名 idx_xxx,唯一索引名 uniq_xxx

      三、表设计规范

      (8)单实例表数目必须小于 500

      (9)单表列数目最好小于 30

      (10)表必须有主键,例如自增主键

      a)主键递增,数据行写入可以提高插入性能,可以避免 page 分裂,减少表碎片,提升空间和内存的使用

      b)主键要选择较短的数据类型, Innodb 引擎普通索引都会保存主键的值,较短的数据类型可以有效的减少索引的磁盘空间,提高索引的缓存效率c) 无主键的表删除,在 row 模式的主从架构,会导致备库卡住

      (11)禁止不要使用外键,如果有外键完整性约束,需要应用程序控制

      外键会导致表与表之间耦合,update 与 delete 操作都会涉及相关联的表,十分影响 sql 的性能,甚至会造成死锁。高并发情况下容易造成数据库性能,大数据高并发业务场景数据库使用以性能优先

      四、字段设计规范

      (12)必须把字段定义为 NOT NULL 并且提供默认值

      a)null 的列使索引/索引统计/值比较都更加复杂,对 MySQL 来说更难优化
      b)null 这种类型 MySQL 内部需要进行特殊处理,增加数据库处理记录的复杂性;同等条件下,表中有较多空字段的时候,数据库的处理性能会降低很多
      c)null 值需要更多的存储空间,无论是表还是索引中每行中的 null 的列都需要额外的空间来标识
      d)对 null 的处理时候,只能采用 is null 或 is not null,而不能采用=、in、<、<>、!=、 not in 这些操作符号。如:where name!='cuiyang',如果存在 name 为 null 值的记录,查询结果就不会包含 name 为 null 值的记录

      (13)禁止使用 TEXT、BLOB 类型

      会浪费更多的磁盘和内存空间,非必要的大量的大字段查询会淘汰掉热数据,导致内存命中率急剧降低,影响数据库性能

      (14)避免使用小数存储货币

      使用整数存储,小数容易导致钱对不上

      (15)必须使用 varchar(20)存储手机号

      • a)涉及到区号或者国家代号,可能出现+-()
      • b)手机号会去做数学运算么?
      • c)varchar 可以支持模糊查询,例如:like“138%”

      (16)禁止使用 ENUM,可使用 TINYINT 代替

      • a)增加新的 ENUM 值要做 DDL 操作
      • b)ENUM 的内部实际存储就是整数,你以为自己定义的是字符串?

      五、索引设计规范

      (17)单表索引建议控制在 5 个以内

      (18)单索引字段数不允许超过 5 个

      字段超过 5 个时,实际已经起不到有效过滤数据的作用了

      (19)禁止在更新十分频繁、区分度不高的属性上建立索引

      • a)更新会变更 B+树,更新频繁的字段建立索引会大大降低数据库性能
      • b)“性别”这种区分度不大的属性,建立索引是没有什么意义的,不能有效过滤数据,性能与全表扫描类似

      (20)建立组合索引,必须把区分度高的字段放在前面

      能够更加有效的过滤数据

      六、SQL 使用规范

      (21)禁止使用 SELECT *,只获取必要的字段,需要显示说明列属性

      • a)读取不需要的列会增加 CPU、IO、NET 消耗
      • b)不能有效的利用覆盖索引
      • c)使用 SELECT *容易在增加或者删除字段后出现程序 BUG

      (22)禁止使用 INSERT INTO t_xxx VALUES(xxx),必须显示指定插入的列属性

      容易在增加或者删除字段后出现程序 BUG

      (23)禁止使用属性隐式转换

      SELECT uid FROM t_user WHERE phone=13812345678

       会导致全表扫描,而不能命中 phone 索引

      (24)避免在 WHERE 条件的属性上使用函数或者表达式

      SELECT uid FROM t_user WHERE from_unixtime(day)>='2017-02-15' 

      会导致全表扫描正确的写法是:

      SELECT uid FROM t_user WHERE day>= unix_timestamp(‘2017-02-15 00:00:00')
      

      (25)避免负向查询,禁止%开头的模糊查询

      a)负向查询条件:NOT、!=、<>、!<、!>、NOT IN、NOT LIKE 等,会导致全表扫描
      b)%开头的模糊查询,会导致全表扫描

      (26)避免大表使用 JOIN 查询及子查询

      会产生临时表,消耗较多内存与 CPU,极大影响数据库性能

      (27)避免使用 OR 条件,尽量改为 IN 查询

      旧版本 Mysql 的 OR 查询是不能命中索引的,即使能命中索引,数据库也需要耗费更多的 CPU 帮助实施查询优化

      (28)应用程序必须捕获 SQL 异常,并有相应处理

      目录

      • 第1章 开始编写PHP程序
      • 1.1 认识动态网页技术
      • 1.1.1 浏览器端Scripts
      • 1.1.2 服务器端Scripts
      • 1.2 认识PHP、Apache与MySQL
      • 1.3 建立PHP、Apache与MySQL运行环境
      • 1.3.1 安装WampServer
      • 1.3.2 设置WampServer
      • 1.3.3 查看PHP文件
      • 1.4 PHP程序的编辑工具
      • 1.5 安装本书范例程序
      • 1.6 编写第一个PHP程序
      • 1.6.1 将PHP程序嵌入HTML文件
      • 1.6.2 将PHP程序放在外部文件中
      • 1.7 PHP程序代码的编写惯例
      • 第2章 类型、变量、常数与运算符
      • 2.1 类型
      • 2.1.1 整数(integer)
      • 2.1.2 浮点数(float、double)
      • 2.1.3 布尔(boolean)
      • 2.1.4 字符串(string)
      • 2.1.5
      • 2.1.6 资源(resource)
      • 2.2 类型转换
      • 2.2.1 检查类型
      • 2.2.2 明确转换类型
      • 2.3 变量
      • 2.3.1 变量的命名规则
      • 2.3.2 变量的访问方式
      • 2.3.3 变量的有效范围
      • 2.3.4 变量处理函数
      • 2.4 常数
      • 2.4.1 用户自定义常数
      • 2.4.2 预定义的常数
      • 2.5 运算符
      • 2.5.1 算术运算符
      • 2.5.2 字符串运算符
      • 2.5.3 递增/递减运算符
      • 2.5.4 比较运算符
      • 2.5.5 位运算符
      • 2.5.6 逻辑运算符
      • 2.5.7 赋值运算符
      • 2.5.8 条件运算符
      • 2.5.9 错误控制运算符
      • 2.5.10 执行运算符
      • 2.5.11 运算符的优先级
      • 2.6 PHP的输出函数
      • 第3章 流程控制与数组
      • 3.1 认识流程控制
      • 3.2 if
      • 3.2.1 if:若...就...(单向选择)
      • 3.2.2 if...else...:若...就...否则...(双向选择)
      • 3.2.3 if...elseif...:若...就...否则 若...就...否则(多向选择)
      • 3.3
      • 3.4 for(计数循环)
      • 3.5 条件循环
      • 3.5.1 while
      • 3.5.2 do...while
      • 3.5.3 break与continue语句
      • 3.5.4 exit() 函数
      • 3.6 foreach
      • 3.7 认识数组
      • 3.8 一维数组
      • ……
      • 第4章 函数
      • 第5章 文件访问
      • 第6章 GD绘图与图像处理
      • 第7章 面向对象
      • 第8章 在网页之间传递信息
      • 第9章 使用Ajax
      • 第10章 jQuery Mobile移动版网页
      • 第11章 管理MySQL数据库
      • 第12章 SQL查询
      • 第13章 访问MySQL数据库
      • 第14章 Google地图应用网站
      • 第15章 移动商品目录
      • 第16章 访客留言板与讨论组
      • 第17章 文件上传
      • 第18章 在线寄信服务与电子贺卡
      • 第19章 会员管理系统
      • 第20章 在线投票系统
      • 第21章 购物车
      • 第22章 网络相册

      以上就是本次介绍的PHP编程电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:软件定义网络:基于OpenFlow的SDN技术揭秘

      下一篇:算法笔记

      展开 +

      收起 -

      下载地址:百度网盘下载
      PHP编程相关电子书
      读者留言
      网友NO.29110
      网友NO.29110

      我们组使用的是用PHP作为后端开发的语言,所以主要学习php的内容,主要学习了一些有关于后端基本操作和ajax的问题。
      php的后端基本操作
      1.php连接mysql数据库 
      $db_link=mysql_connect("localhost","root","passwd") or die("connect error:". mysql_error());
      mysql_select_db("databasename",$db_link);
      $sql="select * from table ";
      $result=mysql_query($sql,$db_link);
      $rows=mysql_fetch_array($result);
      $row=mysql_num_rows($result);
      $id=$rows["id"];
      之后可以使用create,update等等函数
      2.php中session的使用
      在每个页面开始之前用
      session_start();
      $_SESSION["ID"]="userid";
      用于记录用户的登录的信息,可以根据这个判断是否登录以及做一些判断
      3.php中cookie的使用
      setcookie("TestCookie", $value, time()+3600, "/", ".example.com");
      设置了一个TestCookie的值为$value的一个小时后过期的cookie变量
      清空cookie
      setcookie("TestCookie", "", time()-2*3600, "/", ".example.com");
      4.php取页面地址
      $_SERVER['HTTP_REFERER'] //可以得到上一页的地址
      $_SERVER[PHP_SELF] //得到当前页面地址
      $_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]."?".$_SERVER["QUERY_STRING"] //这个可以得到带参数的地址
      5.PHP页面跳转
      header("Location:www.baidu.com");

      网友NO.35713
      网友NO.35713

      现在看来,数据库层次的分为三部分,数据库,数据表,数据
      一个数据库包含若干数据表,一个数据表包含若干数据
      以下是一些常用的mysql语句
      数据库:
      创建一个数据库:create database [数据库名];
      删除一个数据库: drop database [数据库名];
      查看当前有哪些数据库:show databases;
      选择(进入)数据库:use [数据库名];
      数据表(在选定一个数据库的情况下):
      创建一个数据表: create table [table_name](列1 属性,列2 属性。。。。);
      一开始的时候并不明白为什么这里要称之为列,到后来学了数据,就明白了
      查看表结构:show columns from [table_name] from [数据库名];
      修改表结构:alter table [table_name] 操作,操作...;
      删除表:drop table [table_name];
      数据:
      插入数据 :insert into [table_name](column_name,column_name2) value(value,value2);
      查询数据:select [选择列(*代表全选)] from [table_name] where (一些满足的条件);(还有更多的功能,暂时还不会,有待学习);
      修改数据:update [table_name] set column_name = new_value where (满足的一些条件);

      码农之家

      码农之家 提供上传

      资源
      26
      粉丝
      8
      喜欢
      119
      评论
      17

      Copyright 2018-2020 www.xz577.com 码农之家

      版权投诉 / 书籍推广 / 赞助:520161757@qq.com