统计 1

之所以 pdo
插入一漫长记下老是差,又无象别的函数那样自动的会晤输出错误,查了一晃才懂其的错误处理确实比特别.

A代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码
B 集成代码生成器
[正反双向](单表、主表、明细表、树形表,快速开利器)+快速表单**
构建器
freemaker模版技术
,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本,处理类似,service等完全模块
C 集成阿里巴巴数据库连接池druid  数据库连接池  阿里巴巴底
druid。Druid在监控、可扩展性、稳定性和特性方面都出显的优势
D 合龙安全权限框架shiro
  Shiro 是一个为此 Java
语言实现之框架,通过一个大概容易用底 API
提供身份验证和授权,更安全,更牢靠
E 集成ehcache分布式缓存
  是一个纯Java的经过内缓存框架,具有便捷、精干等风味,广泛采用的开源Java分布式缓存。
F **集成微信接口开发,微信自定义菜单(支持多单公众号)
G 图形爬虫技术:输入有图表的网址,能把这个网页的图纸爬取并生充斥及本地服务器
H SQL 编辑器,
支持复杂sql语句(写副语句,查询语句),生成报表,可以导出excel

I  websocket 真正及时报道技术
  即经常闲聊、及时站内信并声音提醒、实时在线管理、websocket就刷新页面(完胜ajax技术)
J  redis 工具类接口,方便调用,并发能力强
K 多数据源(支持以连接众多只数据库,可以不同的模块连接不同往往之据库)支持N个数据源
L  快递单号物流查询接口(不欲选择物流企业,根据单号自动识别)
M 调用摄像头拍,自定义裁剪编辑头像,头像图片色度调节
N  **视频播放技术,视频弹幕技术,多丁即时通讯弹幕聊天**


1
 权限管理:点开二级菜单上三级菜单显示
角色(基础权限)和按钮权限
    
 角色(基础权限):
分角色组和角色,独立分配菜单权限和增删改查权限。
      按钮权限:
给角色分配按钮权限。
2
 按钮管理:自定义按钮管理,维护按钮权限标识等
3
 菜单管理:无限级别由定义菜单,自定义菜单图标,业务菜单与体系菜单分离,菜单状态显示隐藏(递归处理)
4
 数据字典:无限级别,支持多级别无限分类。内设编号,排序等
5
 日志管理:记录用户登录退出及有第一操作记录
6
 在线管理:websocket技术,实时检测在线用户列表,统计在线人数,可强制用户下线
同一用户只能于一个客户端登录
7
 系统用户:对一一基本的用户增删改查,单发、群发站内信邮件短信,导入导出excel表格,批量剔除
8
 会员管理:对前台用户管理,分配会员级别,到期时间,状态,联系信息相当材料
9.   代码生成:生成完整的模块代码,并保存生成记录模版,可复用
(超强悍开发利器)
       
 正向生成:  生成完全的模块,页面、处理类似、service层、myabaits的xml
建表的sql脚本等
       
 反为变化:  任意连接其他数据库(mysql、oracle、sqlserver),根据表反射生成本系统的模块
10.
性能监控:监控所有系统的性,SQL监控,SQL防火墙,URL监控,SPRING监控,SESSION监控等
11. 接口测试:POST or GET
方式检测体系接口,参数加密,json返回结果,计算服务器响应时间
12. 发送邮件:单发,群发邮件  
13.
置二维码:生成二维码图表保存到服务器 or  解析读取二维码内信息
14.
图表报表:柱状图、饼状图、折线图、各种图片大全
15. 地图工具:打开地图,
鼠标点击地图某位置获取经纬度坐标,根据经纬度计算两点离
16. 打印测试:页面打印预览测试
17.
图片管理:对批量及传之图样统一管理
,点击放大,可打开多只,自由切换,绚丽预览效果
18.
图片爬虫:输入有网址,爬来该图片显示在页面上,可以放预览。可保存及服务器上,到图片管理内部
19. 站内信:收信箱和作邮箱,
websocket技术通讯技术做的即时收信提醒,可配备语音提示来信
20. 下拉联动:四级下拉联动demo
21.
系统装置:修改系统名称,邮件服务器配置,短信账号设置,图片水印配置,微信配置
22.
及时聊天:打开聊天窗口,可群聊、一对准一聊天
23.
表单构建:拖拽式快速从定义构建表单,组建元素丰富,有丰厚文本、上传控件、下拉框等等
24.
主附结构:提供一个主表和明细表模块的事例(用本代码生成器生成的)
25.
组织部门:无限级别,公司or部门管理
26.
员工管理:和团组织单位部门管理,可以绑定登录系统用户,授权数据权限
27.
文件管理:上污染文书,修改删除文件,计算文件大小
28.
快递查询:输入快递单号,查询物流跟踪信息。不待选择物流企业,根据单号自动识别
  ————————————————————————————————————————-数据库管理
29. 数据库备份:可备份单表、整库,支持当地同长距离数据库备份(java界面编程技术,socket编程技术)
30.
备份定时器:quartz 2.2
强大的任务调度,多线程备份数据库,任务启动关闭异步操作
31. 数据库还原:历史备份记录,还原数据库 or 单表
,统计备份时间和文件大小
32.

http://www.osedu.net/article/php/2011-05-16/223.html

SQL编辑器:强大的SQL编辑器,支持编辑语句复杂查询语句,生成动态报表,可导出excel

 官网 http://www.fhadmin.org/

食谱权限:分配受每个角色不同的菜单权限,
每个角色看到底食谱不同,无限级别菜单
按钮权限:独立分配不同的角色不同的功效权限,增删改查权限分配具体到不同之菜系,自定义按钮管理
支撑多用户分权限管理后台,  权限具体到不同的食谱不同之按钮(
一个用户可以基本上个角色**)

消息管理:新闻之维护、发布、权重排序等
采用百度ueditor富文本框
公告管理:公告之保安、发布
广告管理:广告之保护、发布,状态维护,上传广告图片
友情链接:友情链接的保安、状态维护
专程推荐:特别推荐、状态维护

**

技术点

**1. 导出 导入 excel
文件

2  导出word文件
3. IO
流上传下充斥文件

4.
群发邮件,可以发html、纯文本格式,可以发给任意邮箱(实现批量发送广告邮件)

5. 群发or单独
发送短信,支持少数栽第三方少信商接口

6. spring 
 aop  事务处理

7. 代码生成器 (freemarker), 代码 zip
压缩打包

8. MD5加密
SHA加密(登录密码用此加密)接口加密位置校验

9. 数据库连接池  阿里底
druid。Druid在监督、可扩展性、稳定性以及属性方面都来醒目的优势,支持并发

10.加盟安全框架 shiro
(登录授权)(session管理)

11.根据汉字
解析汉字之全拼(拼音)和首字母(导入excel到用户表,根据用户的方块字姓名生成拼音的用户称)

12.app接口@ResponseBody(支持及外语言数据交互)
13.极光推送
(推送给APP及时消息,APP不启动为克接过)

14.微信接口(身份验证,文本、图文回复等)
微信远程控制服务器再开、锁定、其它应用程序

15.java Quartz2.2 任务调度

16.java websocket
即时通讯技术,点对碰,群聊,单聊

17.Lucene**全文检索(在送的型遭到) 18.Base64传输图片 19.图加水印(图片水印,文字水印) 20.生成 or  解析
二维码 21.HTML5 + JAVAEE  WebSocket
通信技术,**WebSocket
验证用户登录,强制有用户下线

22.批量异步上传图片,可预览,有快条,支持拖拽上污染(百度webuploader
)。列表动态滑动放大展示。

23.ehcache 由定义二级缓存
,选择缓存存放目录,处理并发,增加系统特性

24.服务器间GET POST
请求

25.uploadify
及传插件,单条、批量达标传多线程,带进度长长的,异步,图片、视频,
其它文件格式均只是达到传

26.地形图选点获取经纬度坐标,根据俩透过纬度计算距离
27.tab签统计页面效果,标签自由切换,不又操作数据库
28.站内信语音提醒,js控制音频播放
29.百度富文本编辑器,可高达污染图片
30.网页爬虫技术,可依据网页地址爬取图片及网页标题等信息(爬取某百货商店图片保存本服务器)
31.redis
技术

32.大部分据源技术
33.springmvc
下拉多级联动技术

34.调用摄像头拍技术,图片裁剪技术
35.快递接口查询技术,输入快递单号查询物流信息
36.在线编辑器,仿开发工具
37.pdf文书在线预览,在线预览文本文件,转码预览
38.视频播放技术,多丁在线弹幕聊天

统计 2**

 

统计 3

统计 4

统计 5

统计 6

统计 7

统计 8

统计 9

统计 10

统计 11

统计 12

统计 13

统计 14

统计 15

统计 16

统计 17

统计 18

 

统计 19

统计 20

统计 21

 

统计 22

 

PHP中PDO快速入门教程

时间:2011-05-16 11:24:35  来源:  作者:

我们开始布局第一个PDO应用,建立一个pdo.php文件于Web文档目录下:

<?php
 $dsn = "mysql:host=localhost;dbname=test";
 $db = new PDO($dsn, ‘root’, ”);
 $count = $db->exec("INSERT INTO foo SET name = ‘heiyeluren’,gender=’男’,time=NOW()");
 echo $count;
 $db = null;
?>

  不晓得啥意思,俺们来逐渐说。这行:

$dsn = "mysql:host=localhost;dbname=test";

  就是布局我们的DSN(数据源),看看中的音包括:数据库类型是mysql,主机地址是localhost,数据库名称是test,就如此几只信息。不同数据库的多寡源构造方式是匪均等的。

$db = new PDO($dsn, ‘root’, ”);

  初始化一个PDO对象,构造函数的参数第一单就是是咱的数据源,第二只是接连数据库服务器的用户,第三个参数是密码。我们不能够确保连接成,后面我们见面称到异常情况,这里我们且认为它是接连成之。

$count = $db->exec("INSERT INTO foo SET name = ‘heiyeluren’,gender=’男’,time=NOW()");
echo $count;

  调用我们连年成功之PDO对象来实行一个查询,这个查询是一个安插一久记下的操作,使用PDO::exec()
方法会返回一个影响记录的结果,所以我们输出这个结果。最后要得了对象资源:

$db = null;

  默认这个不是丰富连,如果欲多少库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT
=> true) 变成这样:

$db = new PDO($dsn, ‘root’, ”, array(PDO::ATTR_PERSISTENT => true));

  一破操作就如此简单,也许同以前的从未有过尽老分别,跟ADOdb倒是有几乎细分相似。
**继续刺探】

**  如果我们怀念提数据以来,那么就算当以数据获得功能。(下面用到的$db都是上面都连续好的对象)

<?php
 foreach($db->query("SELECT * FROM foo")){
  print_r($row);
 }
?>

  我们啊得以利用这种获取方式:

<?php
 $rs = $db->query("SELECT * FROM foo");
 while($row = $rs->fetch()){
  print_r($row);
 }
?>

  如果想同一浅把数据都得到到数组里可以这么:

<?php
$rs = $db->query("SELECT * FROM foo");
$result_arr = $rs->fetchAll();
print_r($result_arr);
?>

Array
([0] => Array(
 [id] => 1
 [0] => 1
 [name] => heiyeluren
 [1] => heiyeluren
 [gender] => 男
 [2] => 男
 [time] => 2006-10-28 23:14:23
 [3] => 2006-10-28 23:14:23
)
}

  我们看其中的记录,数字索引和关联索引都发生,浪费资源,我们只待关联索引的:

<?php
$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER);
$rs = $db->query("SELECT * FROM foo");
$rs->setFetchMode(PDO::FETCH_ASSOC);
$result_arr = $rs->fetchAll();
print_r($result_arr);
?>

  看上面的代码,setAttribute()
方法是设置有属性,主要性能有:PDO::ATTR_CASE、PDO::ATTR_ERRMODE等等,我们这里需要安装的是
PDO::ATTR_CASE,就是我们运用关联索引获取数据集的时刻,关联索引是大写还是有些写,有几乎单选择:

  PDO::CASE_LOWER — 强制列名是微写
  PDO::CASE_NATURAL — 列名按照原来的法
  PDO::CASE_UPPER — 强制列名为老写

  我们以setFetchMode方法来设置获取结果集的返回值的门类,同样类型还有:

  PDO::FETCH_ASSOC — 关联数组形式
  PDO::FETCH_NUM — 数字索引数组形式
  PDO::FETCH_BOTH — 两者数组形式还生,这是欠省的
  PDO::FETCH_OBJ — 按照目标的形式,类似于以前的
mysql_fetch_object()

  当然,一般情况下我们是以PDO::FETCH_ASSOC,具体运用什么,按照你自己之得,其他获取项目参考手册。

  除了上面这种获取数据的办法,还有这种:

<?php
$rs = $db->prepare("SELECT * FROM foo");
$rs->execute();
while($row = $rs->fetch()){
 print_r($row);
}
?>

  其实差不多啦。如果您想取指定记录里一个字段结果的语,可以行使
PDOStatement::fetchColumn():

<?php
$rs = $db->query("SELECT COUNT(*) FROM foo");
$col = $rs->fetchColumn();
echo $col;
?>

  一般下fetchColumn()来拓展count统计要某些只待单字段的记录非常好操作。

  简单的总一下地方的操作:

  查询操作主要是PDO::query()、PDO::exec()、PDO::prepare()。PDO::query()主要是用于产生记录结果回到
回的操作,特别是SELECT操作,PDO::exec()主要是指向无结果集合返回的操作,比如INSERT、UPDATE、DELETE等操作,它
返回的结果是当下操作影响之列数。PDO::prepare()主要是事先处理操作,需要经$rs->execute()来执行预处理之中的SQL语句,
这个法可绑定参数,功能于强,不是本文能够简单说亮的,大家可以参考手册和其余文档。
获取结果集操作主要是:PDOStatement::fetchColumn()、PDOStatement::fetch()、
PDOStatement::fetchALL()。PDOStatement::fetchColumn()
是获得结果指定第一长长的记下之某字段,缺省凡是第一单字段。PDOStatement::fetch()
是用来收获一漫漫记下,PDOStatement::fetchAll()是抱有记录集到一个负,获取结果好通过
PDOStatement::setFetchMode来设置需要结果集合的门类。

  另外有半点只常见的操作,一个凡PDO::lastInsertId()和PDOStatement::rowCount()。
PDO::lastInsertId()是回到上次安插操作,主键列类型是自增的结尾之自增ID。PDOStatement::rowCount()主要
是用于PDO::query()和PDO::prepare()进行DELETE、INSERT、UPDATE操作影响之结果集,对
PDO::exec()方法和SELECT操作无效。

  【错误处理】

  如果程序中相遇错误咋办?我们这边描述PDO类的错误信息和坏处理。

  1. 面向对象的方法

  先看看如果连错误等的拍卖,使用面向对象的主意来拍卖:

<?php
try {
 $db = new PDO(‘mysql:host=localhost;dbname=test’, $user, $pass);
 $db = null;
} catch (PDOException $e) {
 print "Error: " . $e->getMessage() . "<br/>";
 die();
}
?>

  这里用我们PHP
5面向对象的不可开交处理特征,如果中有深的语就初始化调用PDOException来初始化一个老类。

  PDOException异常类的性能结构:

<?php
class PDOException extends Exception
{
 public $errorInfo = null; // 错误信息,可以调用 PDO::errorInfo() 或 PDOStatement::errorInfo()来访问
 protected $message; // 异常信息,可以试用 Exception::getMessage() 来访问
 protected $code; // SQL状态错误代码,可以使用 Exception::getCode() 来访问
}
?>

  这个很处理类是集成PHP 5内置的充分处理类似,我们简要的关押一下PHP
5内置的那个处理接近组织:

<?php
class Exception
{
 // 属性
 protected $message = ‘Unknown exception’; // 异常信息
 protected $code = 0; // 用户自定义异常代码
 protected $file; // 发生异常的文件名
 protected $line; // 发生异常的代码行号

 // 方法
 final function getMessage(); // 返回异常信息
 final function getCode(); // 返回异常代码
 final function getFile(); // 返回发生异常的文件名
 final function getLine(); // 返回发生异常的代码行号
 final function getTrace(); // backtrace() 数组
 final function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息
}
?>

  相应的,在代码中得恰到好处的调用 getFile() 和 getLine()
来拓展不当定位,更有利的拓展调试。

  2. 下面向过程的不二法门

  先看代码:

<?
$db = new PDO(‘mysql:host=localhost;dbname=test’, $user, $pass);
$rs = $db->query("SELECT aa,bb,cc FROM foo");
if ($db->errorCode() != ‘00000’){
 print_r($db->errorInfo());
 exit;
}
$arr = $rs->fetchAll();
print_r($arr);
$db = null;
?>

  PDO和PDOStatement对象有errorCode() 和 errorInfo()
方法,如果无其余错误, errorCode() 返回的是: 00000
,否则即会见回去一些错误代码。errorInfo()
返回的一个频组,包括PHP定义的错误代码和MySQL的错误代码和错误信息,数组结构如下:

Array
(
 [0] => 42S22
 [1] => 1054
 [2] => Unknown column ‘aaa’ in ‘field list’
)

  每次执行查询后,errorCode()
的结果尚且是风靡的,所以我们得好爱好控制错误信息显示。

  【简单总结】

  从上面的动看出,PDO功能确实强大,另外还有一对情己未曾讲到,比如绑定参数、预处理、存储过程、事务处理等等功能。另外还有不同数量扩
DSN的布局,Oracle数据库自己多破例的东西,都要深入去上了解,这篇稿子就只是略的叙述了有的入门知识,算是对PDO一个略的了解吧。