<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Athrun</title><subtitle type="text">ASP.NET--Studio</subtitle><id>http://feed.cnblogs.com/blog/u/22593/rss</id><updated>2012-05-08T00:35:17Z</updated><author><name>Athrun</name><uri>http://www.cnblogs.com/Athrun/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Athrun/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/22593/rss"/><entry><id>http://www.cnblogs.com/Athrun/archive/2012/05/08/2489507.html</id><title type="text">[转]可参考的.NET编码规范及编码指南</title><summary type="text">转自:http://www.cnblogs.com/rickc2k/archive/2012/05/08/2489503.html在团队及项目开发过程中，需要标准的文档化规范。具备良好的软件文档的同时，也要有良好的编码标准、规范及指南，它并不仅仅包含了编码的内容，还有编码的最佳实践和编码如何文档化的最佳实践。良好的编码规范及指南，可以从源头（编码阶段）上扼制缺陷的注入，提高代码品质的同时，也降低了维护成本。同时，良好的代码品质也是代码可复用技术的基础。总而言之，采用良好、完整的代码规范，通过对规范、指南的剪裁获得适合项目过程的编码规约是每个项目开场的重头戏，希望下面这些可供参考的标准、规范、指</summary><published>2012-05-08T00:35:00Z</published><updated>2012-05-08T00:35:00Z</updated><author><name>Athrun</name><uri>http://www.cnblogs.com/Athrun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Athrun/archive/2012/05/08/2489507.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Athrun/archive/2012/05/08/2489507.html"/><content type="html">&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;转自:&lt;a href="http://www.cnblogs.com/rickc2k/archive/2012/05/08/2489503.html" target="_blank"&gt;http://www.cnblogs.com/rickc2k/archive/2012/05/08/2489503.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;在团队及项目开发过程中，需要标准的文档化规范。具备良好的软件文档的同时，也要有良好的编码标准、规范及指南，它并不仅仅包含了编码的内容，还有编码的最佳实践和编码如何文档化的最佳实践。良好的编码规范及指南，可以从源头（编码阶段）上扼制缺陷的注入，提高代码品质的同时，也降低了维护成本。同时，良好的代码品质也是代码可复用技术的基础。总而言之，采用良好、完整的代码规范，通过对规范、指南的剪裁获得适合项目过程的编码规约是每个项目开场的重头戏，希望下面这些可供参考的标准、规范、指南能为大家带来帮助。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;1.Microsoft&amp;rsquo;s All-In-One Code Framework Coding Guideline（中、英）&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;微软的一站式示例编码指南，最难得的是有中文版本，涵盖了规约和最佳实践。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;a href="http://1code.codeplex.com/wikipage?title=All-In-One%20Code%20Framework%20Coding%20Standards&amp;amp;referringTitle=Documentation"&gt;http://1code.codeplex.com/wikipage?title=All-In-One%20Code%20Framework%20Coding%20Standards&amp;amp;referringTitle=Documentation&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;2.IDesign C# Coding Standards&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;IDesign的资源不仅仅包括这个C#编码标准，还有WCF编码标准、Web服务方法颗粒度标准等，在编码和设计方面都不失为良好的参考标准。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;a href="http://www.idesign.net/"&gt;http://www.idesign.net/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;3.Encodo C# Handbook&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;a href="http://archive.msdn.microsoft.com/encodocsharphandbook/Release/ProjectReleases.aspx?ReleaseId=3352"&gt;http://archive.msdn.microsoft.com/encodocsharphandbook/Release/ProjectReleases.aspx?ReleaseId=3352&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;4. Microsoft Framework Design Guidelines&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;微软的类库设计指南，关于接口设计和类库设计的一些指导性意见和建议，是基础类库开发者的首选参考。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms229042.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms229042.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;5.Denni&amp;rsquo;s C# Coding Standards Document&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;a href="http://csharpguidelines.codeplex.com/"&gt;http://csharpguidelines.codeplex.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;6.Brad&amp;rsquo;s Quick Post on Microsoft Internal Coding Guidelines&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;a href="http://blogs.msdn.com/b/brada/archive/2005/01/26/361363.aspx"&gt;http://blogs.msdn.com/b/brada/archive/2005/01/26/361363.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;7.Mike Kruegar&amp;rsquo;s C# Coding Style Guide&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;想必深入了解.NET的开发者都应该知道SharpDevelop，此标准就是SharpDevelop的开发者在过程中应用的编码样式指南，是良好的实践标准。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;a href="http://www.icsharpcode.net/"&gt;http://www.icsharpcode.net/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;8.Lance Hunt&amp;rsquo;s C# Coding Standards Document&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;a href="http://weblogs.asp.net/lhunt/pages/CSharp-Coding-Standards-document.aspx"&gt;http://weblogs.asp.net/lhunt/pages/CSharp-Coding-Standards-document.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;9.Coding Guidelines by Aviva Solutions&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;a href="http://csharpguidelines.codeplex.com/releases/view/46280"&gt;http://csharpguidelines.codeplex.com/releases/view/46280&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;10.Philips Healthcare &amp;ndash; C# Coding Standards&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;这是Philips Healthcare产品的编码指南，可供业界软件开发参考。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;a href="http://www.tiobe.com/content/paperinfo/gemrcsharpcs.pdf"&gt;http://www.tiobe.com/content/paperinfo/gemrcsharpcs.pdf&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;11..NET/SQL/TFS Code &amp;amp; Application Design by SSW&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;SSW的指南并不仅仅包括编码指南，还有数据库设计、配置库管理及应用程序设计等诸多内容，可参考性很强。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;a href="http://www.ssw.com.au/ssw/standards/default.aspx"&gt;http://www.ssw.com.au/ssw/standards/default.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;12.C# Coding Guidelines by Validio Software&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;软件产品的编码规范。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;a href="http://www.nrjetix.com/fileadmin/doc/publications/additional_info/CSharp_Coding_Guidelines.pdf"&gt;http://www.nrjetix.com/fileadmin/doc/publications/additional_info/CSharp_Coding_Guidelines.pdf&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;13.C# Coding Standards and Best Programming Practices by DotnetSpider&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;a href="http://www.dotnetspider.com/tutorials/bestpractices.aspx"&gt;http://www.dotnetspider.com/tutorials/bestpractices.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;14.《Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries (2nd Edition)》&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;中文版名称为《.NET设计规范：.NET约定、惯用法与模式》，是类库设计及开发人员不可或缺的参考手册。&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Athrun/aggbug/2489507.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Athrun/archive/2012/05/08/2489507.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Athrun/archive/2012/04/25/2469589.html</id><title type="text">[转]SQLServerDBA十大必备工具---让生活轻松点</title><summary type="text">转自：http://www.cnblogs.com/fygh/archive/2012/04/25/2469563.html 曾经和一些DBA和数据库开发人员交流时，问他们都用过一些什么样的DB方面的工具，大部分人除了SSMS和Profile之外，基本就没有使用过其他工具了；诚然，SSMS和Profile足够强大，工作的大部分内容都能通过它们搞定，但是MS、第三方公司甚至是个人开发者为SQLServer提供了很多其他的工具，如果你能充分的掌握这些工具，无疑会给我们数据库的管理、优化、测试和排错节省大量的时间和精力，下面就来介绍除SSMS和Profile之外的其他有用的工具。NO1: PD（Po</summary><published>2012-04-25T04:33:00Z</published><updated>2012-04-25T04:33:00Z</updated><author><name>Athrun</name><uri>http://www.cnblogs.com/Athrun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Athrun/archive/2012/04/25/2469589.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Athrun/archive/2012/04/25/2469589.html"/><content type="html">&lt;p&gt;转自：&lt;a href="http://www.cnblogs.com/fygh/archive/2012/04/25/2469563.html"&gt;http://www.cnblogs.com/fygh/archive/2012/04/25/2469563.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;曾经和一些DBA和数据库开发人员交流时，问他们都用过一些什么样的DB方面的工具，大部分人除了SSMS和Profile之外，基本就没有使用过其他工具了；&lt;/p&gt;&lt;p&gt;诚然，SSMS和Profile足够强大，工作的大部分内容都能通过它们搞定，但是MS、第三方公司甚至是个人开发者为SQLServer提供了很多其他的工具，如果你&lt;/p&gt;&lt;p&gt;能充分的掌握这些工具，无疑会给我们数据库的管理、优化、测试和排错节省大量的时间和精力，下面就来介绍除SSMS和Profile之外的其他有用的工具。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;NO1: &lt;/strong&gt;&lt;strong&gt;PD&lt;/strong&gt;&lt;strong&gt;（PowerDesigner）&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;功能：SysBase公司提供的数据库设计工具，功能很强大，是做数据库设计时必备的工具；&lt;/p&gt;&lt;p&gt;下载：&lt;a href="http://www.3ddown.com/soft/14524.htm"&gt;http://www.3ddown.com/soft/14524.htm&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/142465/2012042512060640.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;NO2:&lt;/strong&gt;&lt;strong&gt; Log Explorer&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;功能：数据库日志读取工具，主要用来恢复误操作的数据（目前只支持到2005版本），详见：&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.csdn.net/jinjazz/archive/2008/05/19/2459692.aspx"&gt;http://blog.csdn.net/jinjazz/archive/2008/05/19/2459692.aspx&lt;/a&gt; ;&lt;/p&gt;&lt;p&gt;下载地址：&lt;a href="http://www.pc6.com/softview/SoftView_57657.html"&gt;http://www.pc6.com/softview/SoftView_57657.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/142465/2012042512063710.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;NO3&lt;/strong&gt;&lt;strong&gt;：&lt;/strong&gt;&lt;strong&gt;Tuning Advisor&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;功能：优化顾问，会根据数据库的运行情况，提示您做相关的优化（可靠性不是太高，需要自行判断）;&lt;/p&gt;&lt;p&gt;下载：SQLServer自带&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/142465/2012042512070181.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;NO4&lt;/strong&gt;&lt;strong&gt;：SSMSTools&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;功能：SSMS工具的一个插件，能提供格式化代码、追溯历史等功能（通过它，也许你可要开发自己的插件）；&lt;/p&gt;&lt;p&gt;下载: &lt;a href="http://www.ssmstoolspack.com/"&gt;http://www.ssmstoolspack.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/142465/2012042512072114.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;NO5: &lt;/strong&gt;&lt;strong&gt;DBDiff&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;功能：比较两个数据库的差异；&lt;/p&gt;&lt;p&gt;下载：&lt;a href="http://opendbiff.codeplex.com/"&gt;http://opendbiff.codeplex.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/142465/2012042512074062.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;NO6&lt;/strong&gt;&lt;strong&gt;：&lt;/strong&gt;&lt;strong&gt;PAL Tool&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;功能：Performance Analysis of Logs，Perfmon日志分析工具；&lt;/p&gt;&lt;p&gt;下载：&lt;a href="http://pal.codeplex.com/"&gt;http://pal.codeplex.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/142465/2012042512075942.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/142465/2012042512081246.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;NO7&lt;/strong&gt;&lt;strong&gt;：&lt;/strong&gt;&lt;strong&gt;RML&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;功能：这个工具非常强大，下图展示了完成安装后它的四个主要功能组件；ReadTrace工具能读取数据库的Profile跟踪文件，并生成报告；Ostress能将ReadTrace&lt;/p&gt;&lt;p&gt;生成的文件重播，而且还可以对数据库做压力测试；ORCA能保证重报时，按照事件发生的顺序播放；Reporter能将ReadTrace后的内容通过报表的形式展现，相当&lt;/p&gt;&lt;p&gt;的有用。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/142465/2012042512091564.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;下载：&lt;a href="http://support.microsoft.com/kb/944837"&gt;http://support.microsoft.com/kb/944837&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/142465/2012042512093850.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;NO8&lt;/strong&gt;&lt;strong&gt;：SqlNexus&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;功能：先通过SQLServer自带的SQLdiag.exe工具收集信息，然后再用SqlNexus分析这些信息，它是前面一些工具的整合，为数据库管理人员寻找SQLServer服务器&lt;/p&gt;&lt;p&gt;的性能瓶颈和排查故障提供了相当强大的支持（MS工程师很多都用这个哦，买技术支持的朋友们有木有经历过MS要求你开启SQLDiag，然后将收集的数据回传给他们&lt;/p&gt;&lt;p&gt;的；现场支持时，是不是也开启SQLDiag收集数据，然后就出来了服务器性能报告，有木有；所以掌握它，1k/时的定期服务器检查技术支持费用可以省了）；&lt;/p&gt;&lt;p&gt;下载：&lt;a href="http://sqlnexus.codeplex.com/"&gt;http://sqlnexus.codeplex.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/142465/2012042512100464.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/142465/2012042512101519.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;NO9&lt;/strong&gt;&lt;strong&gt;：SQLIO和&lt;/strong&gt;&lt;strong&gt;SQLIOSim&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;功能：磁盘IO压力测试工具，SQLIO主要是模拟随机或者顺序的方式来测试磁盘IO的性能；SQLIOSim是模拟SQLServer的行为来测试IO性能；&lt;/p&gt;&lt;p&gt;下载：&lt;a href="http://support.microsoft.com/kb/231619"&gt;http://support.microsoft.com/kb/231619&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/142465/2012042512103780.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;NO10:SqlMonitor &amp;amp; SSBDiagnose&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;功能：SqlMonitor是监控Replication和Mirror的必会工具，SSBDiagnose是测试SSB配置的工具；&lt;/p&gt;&lt;p&gt;下载：SQLServer自带&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/142465/2012042512105782.jpg" alt="" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Athrun/aggbug/2469589.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Athrun/archive/2012/04/25/2469589.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Athrun/archive/2012/04/25/2469540.html</id><title type="text">[转]mysql忘记密码，如何重置密码</title><summary type="text">转自:http://dzh.mop.com/whbm/20111117/0/llzg8OI28297d4Fz.shtml1.使用mysqladmin修改mysql密码C:\&gt;mysqladmin -udbuser -p password newpassEnter password: oldpass当然用此命令的前提是你把mysql加入了环境变量，如果没有加入环境变量的话那只能在命令行下cd到mysqladmin所在的目录下与此那个次命令了！-----------------------------------------2.重置root密码方法一:在my.ini的[mysqld]字段加入</summary><published>2012-04-25T03:48:00Z</published><updated>2012-04-25T03:48:00Z</updated><author><name>Athrun</name><uri>http://www.cnblogs.com/Athrun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Athrun/archive/2012/04/25/2469540.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Athrun/archive/2012/04/25/2469540.html"/><content type="html">&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;转自:&lt;a href="http://dzh.mop.com/whbm/20111117/0/llzg8OI28297d4Fz.shtml"&gt;http://dzh.mop.com/whbm/20111117/0/llzg8OI28297d4Fz.shtml&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;1.使用mysqladmin修改mysql密码&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;C:\&amp;gt;mysqladmin -udbuser -p password newpass&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;Enter password: oldpass&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;当然用此命令的前提是你把mysql加入了环境变量，如果没有加入环境变量的话那只能在命令行下cd到&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;mysqladmin所在的目录下与此那个次命令了！&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;-----------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;2.重置root密码&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;方法一:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;在my.ini的[mysqld]字段加入： &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;skip-grant-tables &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;重启mysql服务，这时的mysql不需要密码即可登录数据库&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;然后进入mysql &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;mysql&amp;gt;use mysql;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;mysql&amp;gt;更新 user set password=password('新密码') WHERE User='root'; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;mysql&amp;gt;flush privileges;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;运行之后最后去掉my.ini中的skip-grant-tables，重启mysqld即可。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;修改mysql密码方法二:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;不使用修改my.ini重启服务的方法，通过非服务方式加skip-grant-tables运行mysql来修改mysql密码&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;停止mysql服务&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;打开命令行窗口，在bin目录下使用mysqld-nt.exe启动，即在命令行窗口执行: mysqld-nt --skip-grant-&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;tables&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;然后另外打开一个命令行窗口，登录mysql，此时无需输入mysql密码即可进入。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;按以上方法修改好密码后,关闭命令行运行mysql的那个窗口，此时即关闭了mysql，如果发现mysql仍在运行&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;的话可以结束掉对应进程来关闭。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;启动mysql服务&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;-----------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;记住此方法，走遍天下无mysql密码&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Athrun/aggbug/2469540.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Athrun/archive/2012/04/25/2469540.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Athrun/archive/2012/04/19/asp_mssql_class.html</id><title type="text">ASP操作MSQL类</title><summary type="text">&lt;%'========================================================='類名: Ms SQL 操作類'作者: Athrun'版本: V 0.1'開發日期:2012-4-14'修改日期:2012-4-14'Email: athrunsoft@gmail.com'Dim Db,ProcName,Prams,Rs,OutPut,Sql'Set Db = New DbHelperSQL'ProcName = "SP_Name"'Db.Par</summary><published>2012-04-19T07:44:00Z</published><updated>2012-04-19T07:44:00Z</updated><author><name>Athrun</name><uri>http://www.cnblogs.com/Athrun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Athrun/archive/2012/04/19/asp_mssql_class.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Athrun/archive/2012/04/19/asp_mssql_class.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&amp;lt;&lt;span style="color: #000000;"&gt;%&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;=========================================================&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;類名: Ms SQL 操作類&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;作者: Athrun&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;版本: V 0.1&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;開發日期:2012-4-14&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;修改日期:2012-4-14&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;Email: athrunsoft@gmail.com&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;Dim Db,ProcName,Prams,Rs,OutPut,Sql&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;Set Db = New DbHelperSQL&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;ProcName = "SP_Name"&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;Db.ParameterClear()&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;Db.ParameterAdd "@EID",3,2,4,EID&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;Db.ProcExecute(ProcName)&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;=========================================================&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;Const dbIP = "127.0.0.1\SQLEXPRESS"&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;Const dbname="HandyMan"&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;Const dbuid="sa"&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;Const dbpwd="sasa"&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;Const AdoConnectionTimeout = 15&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;Const AdoCommandTimeout = 30&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;Class&lt;/span&gt;&lt;span style="color: #000000;"&gt; DbHelperSQL&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Private&lt;/span&gt;&lt;span style="color: #000000;"&gt; Conn,Rs,Cmd,Pram,Prams,RecordsAffected&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Private&lt;/span&gt;&lt;span style="color: #000000;"&gt; AdoConnectionTimeout_,AdoCommandTimeout_&lt;br/&gt;    &lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Property&lt;/span&gt; Let LetCmdTimeout(&lt;span style="color: #0000ff;"&gt;ByVal&lt;/span&gt;&lt;span style="color: #000000;"&gt; Value)&lt;br/&gt;        AdoCommandTimeout_ &lt;/span&gt;=&lt;span style="color: #000000;"&gt; Value&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Property&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Property&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Get&lt;/span&gt;&lt;span style="color: #000000;"&gt; GetCmdTimeout()&lt;br/&gt;        GetCmdTimeout &lt;/span&gt;=&lt;span style="color: #000000;"&gt; AdoCommandTimeout_&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Property&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Property&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Get&lt;/span&gt;&lt;span style="color: #000000;"&gt; GetRecordsAffected()&lt;br/&gt;        GetRecordsAffected &lt;/span&gt;=&lt;span style="color: #000000;"&gt; RecordsAffected&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Property&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Sub&lt;/span&gt;&lt;span style="color: #000000;"&gt; Class_Initialize()&lt;br/&gt;        AdoConnectionTimeout_ &lt;/span&gt;=&lt;span style="color: #000000;"&gt; AdoConnectionTimeout&lt;br/&gt;        AdoCommandTimeout_ &lt;/span&gt;=&lt;span style="color: #000000;"&gt; AdoCommandTimeout&lt;br/&gt;        Prams &lt;/span&gt;=&lt;span style="color: #000000;"&gt; Array()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; ReSetRecordsAffected()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; DbOpen()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; Rs = Server.CreateObject(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;ADODB.Recordset&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)    &lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; Cmd = Server.CreateObject(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;ADODB.Command&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)    &lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Sub&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Sub&lt;/span&gt;&lt;span style="color: #000000;"&gt; Class_Terminate()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; DbClose()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; ParameterClear()&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Sub&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Sub&lt;/span&gt;&lt;span style="color: #000000;"&gt; DbOpen()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;On&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Error&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Resume&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Next&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;        Application.Lock&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; connString&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; Conn = Server.CreateObject(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;ADODB.Connection&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;        Conn.ConnectionTimeout &lt;/span&gt;=&lt;span style="color: #000000;"&gt; AdoConnectionTimeout_&lt;br/&gt;        Conn.CommandTimeout &lt;/span&gt;=&lt;span style="color: #000000;"&gt; AdoCommandTimeout_&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;'sql2000&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008000;"&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;'connString = "Driver={sql server};uid=" + dbuid + ";pwd=" + dbpwd + ";database=" + dbname + ";server=" + dbIP + ";"&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008000;"&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;'sql2008&lt;/span&gt;&lt;br/&gt;        connString = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Driver={SQL Server Native Client 10.0};uid=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + dbuid + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;;pwd=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + dbpwd + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;;database=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + dbname + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;;server=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + dbIP + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;        Conn.Open connString&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; Err &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;            Application.UnLock()&lt;br/&gt;            Response.Clear()&lt;br/&gt;            Response.Write(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;script language='javascript'&amp;gt;alert('Database connection error.');&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;            Response.End()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;        Application.UnLock&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Sub&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Sub&lt;/span&gt;&lt;span style="color: #000000;"&gt; DbClose()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;'If Conn.State = 1 Then Conn.Close()&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;End Sub&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Sub&lt;/span&gt;&lt;span style="color: #000000;"&gt; ReSetRecordsAffected()&lt;br/&gt;        RecordsAffected &lt;/span&gt;= -&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;End Sub&lt;/span&gt;&lt;br/&gt;        &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Sub&lt;/span&gt;&lt;span style="color: #000000;"&gt; ParameterAdd(Name_, Type_, Direction_, Size_, Value_)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;On&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Error&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Resume&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Next&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; arrLength&lt;br/&gt;        arrLength&lt;/span&gt;=&lt;span style="color: #0000ff;"&gt;Ubound&lt;/span&gt;(Prams)+&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;ReDim&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Preserve&lt;/span&gt;&lt;span style="color: #000000;"&gt; Prams(arrLength)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; Prams(arrLength)=&lt;span style="color: #000000;"&gt;Cmd.CreateParameter(Name_, Type_, Direction_, Size_, Value_)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; Err &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt; Response.Write(Err.Description)&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Sub&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Sub&lt;/span&gt;&lt;span style="color: #000000;"&gt; ParameterClear()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Erase&lt;/span&gt;&lt;span style="color: #000000;"&gt; Prams&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;ReDim&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Preserve&lt;/span&gt; Prams(-&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Sub&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; SqlExecute(Sql)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;On&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Error&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Resume&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Next&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; ReSetRecordsAffected()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; Result&lt;br/&gt;        Result &lt;/span&gt;= &lt;span style="color: #0000ff;"&gt;True&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;        Conn.Execute Sql,RecordsAffected&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; Err &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt; Result = &lt;span style="color: #0000ff;"&gt;False&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;        SqlExecute &lt;/span&gt;=&lt;span style="color: #000000;"&gt; Result&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Function&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; SqlExecuteScaler(Sql)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; ReSetRecordsAffected()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; Result&lt;br/&gt;        Result &lt;/span&gt;=&lt;span style="color: #000000;"&gt; Null&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; Rs =&lt;span style="color: #000000;"&gt; Conn.Execute(Sql)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Not&lt;/span&gt; Rs.Eof &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt; Result = Rs(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;        SqlExecuteScaler &lt;/span&gt;=&lt;span style="color: #000000;"&gt; Result&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Function&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; SqlExecuteReader(Sql)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; ReSetRecordsAffected()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; SqlExecuteReader =&lt;span style="color: #000000;"&gt; Conn.Execute(Sql)&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Function&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; SqlExecutePageReader(Sql)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; ReSetRecordsAffected()&lt;br/&gt;        Rs.Open Sql,Conn,&lt;/span&gt;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; SqlExecutePageReader =&lt;span style="color: #000000;"&gt; Rs&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Function&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; PramExecute(Sql)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;On&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Error&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Resume&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Next&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; ReSetRecordsAffected()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; Result&lt;br/&gt;        Result &lt;/span&gt;= &lt;span style="color: #0000ff;"&gt;True&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt; CommandPropertySet(Sql,&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; PramAppend()&lt;br/&gt;        Cmd.Execute RecordsAffected&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; Err &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt; Result = &lt;span style="color: #0000ff;"&gt;False&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;        PramExecute &lt;/span&gt;=&lt;span style="color: #000000;"&gt; Result&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Function&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; PramExecuteScaler(Sql)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; ReSetRecordsAffected()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; Result&lt;br/&gt;        Result &lt;/span&gt;=&lt;span style="color: #000000;"&gt; Null&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt; CommandPropertySet(Sql,&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; PramAppend()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; Rs=&lt;span style="color: #000000;"&gt;Cmd.Execute()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Not&lt;/span&gt; Rs.Eof &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt; Result = Rs(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;        PramExecuteScaler &lt;/span&gt;=&lt;span style="color: #000000;"&gt; Result&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Function&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; PramExecuteReader(Sql)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; ReSetRecordsAffected()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt; CommandPropertySet(Sql,&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; PramAppend()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; PramExecuteReader=&lt;span style="color: #000000;"&gt;Cmd.Execute()&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Function&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; PramExecutePageReader(Sql)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; ReSetRecordsAffected()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt; CommandPropertySet(Sql,&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; PramAppend()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; RecordsetPagePropertySet()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; PramExecutePageReader=&lt;span style="color: #000000;"&gt;Rs&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Function&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; ProcExecute(ProcName)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; ReSetRecordsAffected()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt; CommandPropertySet(ProcName,&lt;span style="color: #800080;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;        Cmd.Parameters.append Cmd.CreateParameter(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;@return&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&lt;span style="color: #800080;"&gt;3&lt;/span&gt;,&lt;span style="color: #800080;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; PramAppend()&lt;br/&gt;        Cmd.Execute()&lt;br/&gt;        ProcExecute &lt;/span&gt;= Cmd(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Function&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; ProcExecuteScaler(ProcName)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; ReSetRecordsAffected()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; Result&lt;br/&gt;        Result &lt;/span&gt;=&lt;span style="color: #000000;"&gt; Null&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt; CommandPropertySet(ProcName,&lt;span style="color: #800080;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; PramAppend()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; Rs=&lt;span style="color: #000000;"&gt;Cmd.Execute()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Not&lt;/span&gt; Rs.Eof &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt; Result = Rs(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;        ProcExecuteScaler &lt;/span&gt;=&lt;span style="color: #000000;"&gt; Result&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Function&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; ProcExecuteReader(ProcName)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; ReSetRecordsAffected()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt; CommandPropertySet(ProcName,&lt;span style="color: #800080;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; PramAppend()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; ProcExecuteReader=&lt;span style="color: #000000;"&gt;Cmd.Execute()&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Function&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; ProcExecutePageReader(ProcName)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; ReSetRecordsAffected()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt; CommandPropertySet(ProcName,&lt;span style="color: #800080;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; PramAppend()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Call&lt;/span&gt;&lt;span style="color: #000000;"&gt; RecordsetPagePropertySet()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Set&lt;/span&gt; ProcExecutePageReader=&lt;span style="color: #000000;"&gt;Rs&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Function&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Sub&lt;/span&gt;&lt;span style="color: #000000;"&gt; RecordsetPagePropertySet()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;'返回一個帶Cursor的記錄集&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;With&lt;/span&gt;&lt;span style="color: #000000;"&gt; Rs&lt;br/&gt;            .CursorLocation&lt;/span&gt;=&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;span style="color: #008000;"&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;adUseClient&lt;/span&gt;&lt;br/&gt;            .CursorType=&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #008000;"&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;0=adOpenForwardOnly&lt;/span&gt;&lt;br/&gt;            .LockType=&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #008000;"&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;1=adLockReadOnly&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #000000;"&gt;            .Open Cmd&lt;br/&gt;            .ActiveConnection &lt;/span&gt;= &lt;span style="color: #0000ff;"&gt;Nothing&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;With&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;End Sub&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Sub&lt;/span&gt;&lt;span style="color: #000000;"&gt; CommandPropertySet(CommandText_,CommandType_)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;With&lt;/span&gt;&lt;span style="color: #000000;"&gt; Cmd&lt;br/&gt;            .CommandTimeout   &lt;/span&gt;=&lt;span style="color: #000000;"&gt; AdoCommandTimeout_&lt;br/&gt;            .ActiveConnection &lt;/span&gt;=&lt;span style="color: #000000;"&gt; Conn&lt;br/&gt;            .CommandText      &lt;/span&gt;=&lt;span style="color: #000000;"&gt; CommandText_&lt;br/&gt;            .CommandType      &lt;/span&gt;=&lt;span style="color: #000000;"&gt; CommandType_&lt;br/&gt;            .Prepared         &lt;/span&gt;= &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;With&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;End Sub&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Sub&lt;/span&gt;&lt;span style="color: #000000;"&gt; PramAppend()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;For&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Each&lt;/span&gt; Pram &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; Prams&lt;br/&gt;            Cmd.Parameters.append Pram&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Next&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;End Sub&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; GetOutPut(HaveRecordset)&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; OutPut,arrLength&lt;br/&gt;        OutPut &lt;/span&gt;=&lt;span style="color: #000000;"&gt; Array()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; HaveRecordset &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt; Rs.Close()&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;For&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Each&lt;/span&gt; Pram &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; Cmd.Parameters&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;'Response.Write Pram.name &amp;amp;"="&amp;amp; trim(Pram) &amp;amp;"&amp;lt;br&amp;gt;"&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; Pram.Direction=&lt;span style="color: #800080;"&gt;2&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Or&lt;/span&gt; Pram.Direction=&lt;span style="color: #800080;"&gt;3&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;                arrLength&lt;/span&gt;=&lt;span style="color: #0000ff;"&gt;Ubound&lt;/span&gt;(OutPut)+&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;br/&gt;                &lt;span style="color: #0000ff;"&gt;ReDim&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;Preserve&lt;/span&gt;&lt;span style="color: #000000;"&gt; OutPut(arrLength)&lt;br/&gt;                OutPut(arrLength)&lt;/span&gt;=&lt;span style="color: #000000;"&gt;Pram&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;Next&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;If&lt;/span&gt; HaveRecordset &lt;span style="color: #0000ff;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt; Rs.Open()&lt;br/&gt;        GetOutPut &lt;/span&gt;=&lt;span style="color: #000000;"&gt; OutPut&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;End Function&lt;/span&gt;&lt;br/&gt;    &lt;br/&gt;&lt;span style="color: #0000ff;"&gt;End Class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;%&lt;/span&gt;&amp;gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Athrun/aggbug/2457216.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Athrun/archive/2012/04/19/asp_mssql_class.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Athrun/archive/2012/04/19/pdo_class.html</id><title type="text">一個PDO操作類</title><summary type="text">&lt;?php/** Author: AthrunSoft* class.pdomysql.php 0.01 2012-4-15*/class pdomysql { public static $dbtype = 'mysql'; public static $dbhost = ''; public static $dbport = ''; public static $dbname = ''; public static $dbuser = ''; public static $dbpass = '&amp;#</summary><published>2012-04-19T07:40:00Z</published><updated>2012-04-19T07:40:00Z</updated><author><name>Athrun</name><uri>http://www.cnblogs.com/Athrun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Athrun/archive/2012/04/19/pdo_class.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Athrun/archive/2012/04/19/pdo_class.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?&lt;span style="color: #000000;"&gt;php&lt;br/&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;*    Author: AthrunSoft&lt;br/&gt;*    class.pdomysql.php 0.01 2012-4-15&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; pdomysql {&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #800080;"&gt;$dbtype&lt;/span&gt; = 'mysql'&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #800080;"&gt;$dbhost&lt;/span&gt; = ''&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #800080;"&gt;$dbport&lt;/span&gt; = ''&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #800080;"&gt;$dbname&lt;/span&gt; = ''&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #800080;"&gt;$dbuser&lt;/span&gt; = ''&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #800080;"&gt;$dbpass&lt;/span&gt; = ''&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #800080;"&gt;$charset&lt;/span&gt; = ''&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #800080;"&gt;$DB&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #800080;"&gt;$connect&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;; &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;是否長連接&lt;/span&gt;&lt;br/&gt;   &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #800080;"&gt;$debug&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #800080;"&gt;$parms&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;array&lt;/span&gt;&lt;span style="color: #000000;"&gt;();&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 構造函數&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; __construct() {&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$dbtype&lt;/span&gt; = 'mysql'&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$dbhost&lt;/span&gt; =&lt;span style="color: #000000;"&gt; DBHOST;&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$dbport&lt;/span&gt; =&lt;span style="color: #000000;"&gt; DBPORT;&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$dbname&lt;/span&gt; =&lt;span style="color: #000000;"&gt; DBNAME;&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$dbuser&lt;/span&gt; =&lt;span style="color: #000000;"&gt; DBUSER;&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$dbpass&lt;/span&gt; =&lt;span style="color: #000000;"&gt; DBPASS;&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$connect&lt;/span&gt; =&lt;span style="color: #000000;"&gt; ISCONNECT;&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$charset&lt;/span&gt; =&lt;span style="color: #000000;"&gt; CHARSET;&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #000000;"&gt;connect();&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;-&amp;gt;setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;-&amp;gt;setAttribute(PDO::ATTR_EMULATE_PREPARES, &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        self&lt;/span&gt;::execute('SET NAMES ' . self::&lt;span style="color: #800080;"&gt;$charset&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     *析構函數&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; __destruct() {&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #000000;"&gt;close();&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;********************基本方法開始********************&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:連結資料庫&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; connect() {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br/&gt;            self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; PDO(self::&lt;span style="color: #800080;"&gt;$dbtype&lt;/span&gt; . ':host=' . self::&lt;span style="color: #800080;"&gt;$dbhost&lt;/span&gt; . ';port=' . self::&lt;br/&gt;                &lt;span style="color: #800080;"&gt;$dbport&lt;/span&gt; . ';dbname=' . self::&lt;span style="color: #800080;"&gt;$dbname&lt;/span&gt;, self::&lt;span style="color: #800080;"&gt;$dbuser&lt;/span&gt;, self::&lt;span style="color: #800080;"&gt;$dbpass&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;array&lt;/span&gt;(PDO::&lt;span style="color: #000000;"&gt;&lt;br/&gt;                ATTR_PERSISTENT &lt;/span&gt;=&amp;gt; self::&lt;span style="color: #800080;"&gt;$connect&lt;/span&gt;&lt;span style="color: #000000;"&gt;));&lt;br/&gt;        }&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt; (PDOException &lt;span style="color: #800080;"&gt;$e&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;die&lt;/span&gt;("Connect Error Infomation:" . &lt;span style="color: #800080;"&gt;$e&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;getMessage());&lt;br/&gt;        }&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     *關閉資料連接&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; close() {&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 對字串進行轉義&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; quote(&lt;span style="color: #800080;"&gt;$str&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;-&amp;gt;quote(&lt;span style="color: #800080;"&gt;$str&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 返回一個日期時間字符&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; now() {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #008080;"&gt;date&lt;/span&gt;("Y-m-d H:i:s"&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:獲取當前庫的所有表名&lt;br/&gt;     * 返回:當前庫的所有表名&lt;br/&gt;     * 類型:陣列&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; getTablesName() {&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;-&amp;gt;query('SHOW TABLES FROM ' . self::&lt;span style="color: #800080;"&gt;$dbname&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;fetchAll(PDO::&lt;span style="color: #000000;"&gt;FETCH_NUM);&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #800080;"&gt;$result&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:獲取資料表裡的欄位&lt;br/&gt;     * 返回:表字段結構&lt;br/&gt;     * 類型:陣列&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; getFields(&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;-&amp;gt;query("DESCRIBE &lt;span style="color: #800080;"&gt;$table&lt;/span&gt;"&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;fetchAll(PDO::&lt;span style="color: #000000;"&gt;FETCH_ASSOC);&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #800080;"&gt;$result&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:獲得最後INSERT的主鍵ID&lt;br/&gt;     * 返回:最後INSERT的主鍵ID&lt;br/&gt;     * 類型:數字&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; getLastId() {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;lastInsertId();&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     *事務開始&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; autocommit() {&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;beginTransaction();&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     *事務提交&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; commit() {&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;commit();&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     *交易復原&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; rollback() {&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;rollback();&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:執行INSERT\UPDATE\DELETE&lt;br/&gt;     * 返回:執行語句影響行數&lt;br/&gt;     * 類型:數字&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; execute(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        self&lt;/span&gt;::getPDOError(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;-&amp;gt;&lt;span style="color: #008080;"&gt;exec&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 獲取要操作的資料&lt;br/&gt;     * 返回:合併後的SQL語句&lt;br/&gt;     * 類型:字串&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; getCode(&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$args&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$code&lt;/span&gt; = ''&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #008080;"&gt;is_array&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$args&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) {&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (&lt;span style="color: #800080;"&gt;$args&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt; &lt;span style="color: #800080;"&gt;$k&lt;/span&gt; =&amp;gt; &lt;span style="color: #800080;"&gt;$v&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #800080;"&gt;$v&lt;/span&gt; == ''&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;continue&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;                }&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #800080;"&gt;$code&lt;/span&gt; .= "`&lt;span style="color: #800080;"&gt;$k&lt;/span&gt;`='&lt;span style="color: #800080;"&gt;$v&lt;/span&gt;',"&lt;span style="color: #000000;"&gt;;&lt;br/&gt;            }&lt;br/&gt;        }&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$code&lt;/span&gt; = &lt;span style="color: #008080;"&gt;substr&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$code&lt;/span&gt;, 0, -1&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #800080;"&gt;$code&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 執行具體SQL操作&lt;br/&gt;     * 返回:運行結果&lt;br/&gt;     * 類型:陣列或數位&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; _fetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;array&lt;/span&gt;&lt;span style="color: #000000;"&gt;();&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;-&amp;gt;query(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        self&lt;/span&gt;::getPDOError(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;setFetchMode(PDO::&lt;span style="color: #000000;"&gt;FETCH_ASSOC);&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;switch&lt;/span&gt; (&lt;span style="color: #800080;"&gt;$type&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt; '0':&lt;br/&gt;                &lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;fetch();&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt; '1':&lt;br/&gt;                &lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;fetchAll();&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt; '2':&lt;br/&gt;                &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;                    &lt;/span&gt;&lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;fetchColumn();&lt;br/&gt;                } &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;elseif&lt;/span&gt; (self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;                    &lt;/span&gt;&lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;rowCount();&lt;br/&gt;                } &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br/&gt;                    &lt;/span&gt;&lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = 0&lt;span style="color: #000000;"&gt;;&lt;br/&gt;                }&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        }&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #800080;"&gt;$result&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 分頁計算&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; &lt;span style="color: #008080;"&gt;count&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$pagesize&lt;/span&gt;, &amp;amp;&lt;span style="color: #800080;"&gt;$page&lt;/span&gt;, &amp;amp;&lt;span style="color: #800080;"&gt;$pagecount&lt;/span&gt;, &amp;amp;&lt;span style="color: #800080;"&gt;$recordcount&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;獲取記錄行數,計算頁數,以及重新檢查當前頁碼&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #800080;"&gt;$pagecount&lt;/span&gt; = &lt;span style="color: #008080;"&gt;ceil&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$recordcount&lt;/span&gt; / &lt;span style="color: #800080;"&gt;$pagesize&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #800080;"&gt;$pagecount&lt;/span&gt; &amp;gt; 0&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #800080;"&gt;$page&lt;/span&gt; &amp;gt; &lt;span style="color: #800080;"&gt;$pagecount&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #800080;"&gt;$page&lt;/span&gt; = &lt;span style="color: #800080;"&gt;$pagecount&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;            } &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;elseif&lt;/span&gt; (&lt;span style="color: #800080;"&gt;$page&lt;/span&gt; &amp;lt; 1&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #800080;"&gt;$page&lt;/span&gt; = 1&lt;span style="color: #000000;"&gt;;&lt;br/&gt;            }&lt;br/&gt;        } &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #800080;"&gt;$page&lt;/span&gt; = 1&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        }&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;********************基本方法結束********************&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;    &lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;********************Sql操作方法開始********************&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:插入資料&lt;br/&gt;     * 返回:表內記錄&lt;br/&gt;     * 類型:陣列&lt;br/&gt;     * 參數:$db-&amp;gt;insert('$table',array('title'=&amp;gt;'Zxsv'))&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; add(&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$args&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; = "INSERT INTO `&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;` SET "&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$code&lt;/span&gt; = self::getCode(&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$args&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; .= &lt;span style="color: #800080;"&gt;$code&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::execute(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 修改資料&lt;br/&gt;     * 返回:記錄數&lt;br/&gt;     * 類型:數字&lt;br/&gt;     * 參數:$db-&amp;gt;update($table,array('title'=&amp;gt;'Zxsv'),array('id'=&amp;gt;'1'),$where ='id=3');&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; update(&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$args&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$where&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$code&lt;/span&gt; = self::getCode(&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$args&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; = "UPDATE `&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;` SET "&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; .= &lt;span style="color: #800080;"&gt;$code&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; .= " Where &lt;span style="color: #800080;"&gt;$where&lt;/span&gt;"&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::execute(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:刪除資料&lt;br/&gt;     * 返回:表內記錄&lt;br/&gt;     * 類型:陣列&lt;br/&gt;     * 參數:$db-&amp;gt;delete($table,$condition = null,$where ='id=3')&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; delete(&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$where&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; = "DELETE FROM `&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;` Where &lt;span style="color: #800080;"&gt;$where&lt;/span&gt;"&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::execute(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:獲取單行資料&lt;br/&gt;     * 返回:表內第一條記錄&lt;br/&gt;     * 類型:陣列&lt;br/&gt;     * 參數:$db-&amp;gt;fetOne($table,$condition = null,$field = '*',$where ='')&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; fetOne(&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$field&lt;/span&gt; = '*', &lt;span style="color: #800080;"&gt;$where&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; = "SELECT {&lt;span style="color: #800080;"&gt;$field&lt;/span&gt;} FROM `{&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;}`"&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; .= (&lt;span style="color: #800080;"&gt;$where&lt;/span&gt;) ? " WHERE &lt;span style="color: #800080;"&gt;$where&lt;/span&gt;" : ''&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::_fetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt; = '0'&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:獲取單行資料&lt;br/&gt;     * 返回:表內第一條記錄&lt;br/&gt;     * 類型:陣列&lt;br/&gt;     * 參數:select * from table where id='1'&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; getOne(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::_fetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt; = '0'&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:獲取首行首列資料&lt;br/&gt;     * 返回:首行首列欄位值&lt;br/&gt;     * 類型:值&lt;br/&gt;     * 參數:select `a` from table where id='1'&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; scalar(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$fieldname&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$row&lt;/span&gt; = self::_fetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt; = '0'&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #800080;"&gt;$row&lt;/span&gt;[&lt;span style="color: #800080;"&gt;$fieldname&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 獲取記錄總數&lt;br/&gt;     * 返回:記錄數&lt;br/&gt;     * 類型:數字&lt;br/&gt;     * 參數:$db-&amp;gt;fetRow('$table',$condition = '',$where ='');&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; fetRowCount(&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$field&lt;/span&gt; = '*', &lt;span style="color: #800080;"&gt;$where&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; = "SELECT COUNT({&lt;span style="color: #800080;"&gt;$field&lt;/span&gt;}) AS num FROM `&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;`"&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; .= (&lt;span style="color: #800080;"&gt;$where&lt;/span&gt;) ? " WHERE &lt;span style="color: #800080;"&gt;$where&lt;/span&gt;" : ''&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::_fetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt; = '2'&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 獲取記錄總數&lt;br/&gt;     * 返回:記錄數&lt;br/&gt;     * 類型:數字&lt;br/&gt;     * 參數:select count(*) from table&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; getRowCount(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::_fetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt; = '2'&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:獲取所有資料&lt;br/&gt;     * 返回:表內記錄&lt;br/&gt;     * 類型:二維陣列&lt;br/&gt;     * 參數:$db-&amp;gt;fetAll('$table',$condition = '',$field = '*',$orderby = '',$limit = '',$where='')&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; fetAll(&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$field&lt;/span&gt; = '*', &lt;span style="color: #800080;"&gt;$orderby&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$where&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; = "SELECT {&lt;span style="color: #800080;"&gt;$field&lt;/span&gt;} FROM `{&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;}`"&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; .= (&lt;span style="color: #800080;"&gt;$where&lt;/span&gt;) ? " WHERE &lt;span style="color: #800080;"&gt;$where&lt;/span&gt;" : ''&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; .= (&lt;span style="color: #800080;"&gt;$orderby&lt;/span&gt;) ? " ORDER BY &lt;span style="color: #800080;"&gt;$orderby&lt;/span&gt;" : ''&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::_fetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt; = '1'&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:獲取分頁資料&lt;br/&gt;     * 返回:表內記錄&lt;br/&gt;     * 類型:二維陣列&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; fetPageAll(&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$field&lt;/span&gt; = '*', &lt;span style="color: #800080;"&gt;$where&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$orderby&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;,&lt;br/&gt;        &lt;span style="color: #800080;"&gt;$pagesize&lt;/span&gt;, &amp;amp;&lt;span style="color: #800080;"&gt;$page&lt;/span&gt;, &amp;amp;&lt;span style="color: #800080;"&gt;$pagecount&lt;/span&gt;, &amp;amp;&lt;span style="color: #800080;"&gt;$recordcount&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; = "SELECT {&lt;span style="color: #800080;"&gt;$field&lt;/span&gt;} FROM `{&lt;span style="color: #800080;"&gt;$table&lt;/span&gt;}`"&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; .= (&lt;span style="color: #800080;"&gt;$where&lt;/span&gt;) ? " WHERE &lt;span style="color: #800080;"&gt;$where&lt;/span&gt;" : ''&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::getPageAll(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$orderby&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$pagesize&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$page&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$pagecount&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$recordcount&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:獲取所有資料&lt;br/&gt;     * 返回:表內記錄&lt;br/&gt;     * 類型:二維陣列&lt;br/&gt;     * 參數:select * from table&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; getAll(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::_fetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt; = '1'&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:獲取分頁資料&lt;br/&gt;     * 返回:表內記錄&lt;br/&gt;     * 類型:二維陣列&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; getPageAll(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$orderby&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$pagesize&lt;/span&gt;, &amp;amp;&lt;span style="color: #800080;"&gt;$page&lt;/span&gt;, &amp;amp;&lt;span style="color: #800080;"&gt;$pagecount&lt;/span&gt;,&lt;br/&gt;        &amp;amp;&lt;span style="color: #800080;"&gt;$recordcount&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sqlcount&lt;/span&gt; = "select count(1) as `recordcount` from (&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;) as t;"&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$recordcount&lt;/span&gt; = self::scalar(&lt;span style="color: #800080;"&gt;$sqlcount&lt;/span&gt;, 'recordcount'&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #008080;"&gt;count&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$pagesize&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$page&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$pagecount&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$recordcount&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$start&lt;/span&gt; = (&lt;span style="color: #800080;"&gt;$page&lt;/span&gt; - 1) * &lt;span style="color: #800080;"&gt;$pagesize&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; .= (&lt;span style="color: #800080;"&gt;$orderby&lt;/span&gt;) ? " ORDER BY &lt;span style="color: #800080;"&gt;$orderby&lt;/span&gt;" : ''&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; .= " limit &lt;span style="color: #800080;"&gt;$start&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$pagesize&lt;/span&gt;"&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::_fetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt; = '1'&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;********************Sql操作方法結束********************&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;    &lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;********************Pram操作方法開始********************&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:獲取單行資料&lt;br/&gt;     * 返回:表內第一條記錄&lt;br/&gt;     * 類型:陣列&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; pramGetOne(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$input_parameters&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::_pramfetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$input_parameters&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt; = '0'&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:獲取所有資料&lt;br/&gt;     * 返回:表內記錄&lt;br/&gt;     * 類型:二維陣列&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; pramGetAll(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$input_parameters&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::_pramfetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$input_parameters&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt; = '1'&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:執行帶參數SQL操作&lt;br/&gt;     * 返回:執行語句影響行數&lt;br/&gt;     * 類型:數字&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; pramExecute(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$input_parameters&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::_pramfetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$input_parameters&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt; = '2'&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:獲取首行首列資料&lt;br/&gt;     * 返回:首行首列欄位值&lt;br/&gt;     * 類型:值&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; pramScalar(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$input_parameters&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$fieldname&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$row&lt;/span&gt; = self::_pramfetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$input_parameters&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt; = '0'&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #800080;"&gt;$row&lt;/span&gt;[&lt;span style="color: #800080;"&gt;$fieldname&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 執行帶參數SQL操作&lt;br/&gt;     * 返回:運行結果&lt;br/&gt;     * 類型:陣列或數位&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; _pramfetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$input_parameters&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;array&lt;/span&gt;&lt;span style="color: #000000;"&gt;();&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;-&amp;gt;prepare(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        self&lt;/span&gt;::getPDOError(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;execute(&lt;span style="color: #800080;"&gt;$input_parameters&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        self&lt;/span&gt;::getSTMTError(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;setFetchMode(PDO::&lt;span style="color: #000000;"&gt;FETCH_ASSOC);&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;switch&lt;/span&gt; (&lt;span style="color: #800080;"&gt;$type&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt; '0':&lt;br/&gt;                &lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;fetch();&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt; '1':&lt;br/&gt;                &lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;fetchAll();&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt; '2':&lt;br/&gt;                &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;                    &lt;/span&gt;&lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;rowCount();&lt;br/&gt;                } &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br/&gt;                    &lt;/span&gt;&lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = 0&lt;span style="color: #000000;"&gt;;&lt;br/&gt;                }&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        }&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #800080;"&gt;$result&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;********************Pram操作方法結束********************&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;    &lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;********************Proc操作方法開始********************&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 添加參數&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; pramadd(&lt;span style="color: #800080;"&gt;$parameter&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$variable&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$data_type&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$length&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #008080;"&gt;array_push&lt;/span&gt;(self::&lt;span style="color: #800080;"&gt;$parms&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;array&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$parameter&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$variable&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$data_type&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$length&lt;/span&gt;&lt;span style="color: #000000;"&gt;));&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 清除所有參數&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; pramclear() {&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$parms&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;array&lt;/span&gt;&lt;span style="color: #000000;"&gt;();&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:獲取單行資料&lt;br/&gt;     * 返回:表內第一條記錄&lt;br/&gt;     * 類型:陣列&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; procGetOne(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::_procfetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt; = '0'&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:獲取所有資料&lt;br/&gt;     * 返回:表內記錄&lt;br/&gt;     * 類型:二維陣列&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; procGetAll(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::_procfetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt; = '1'&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:執行一個存儲過程&lt;br/&gt;     * 返回:執行語句影響行數&lt;br/&gt;     * 類型:數字&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; procExecute(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::_procfetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt; = '2'&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:獲取out型的return&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; getReturn() {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; self::scalar("select @ireturn AS iReturn", "iReturn"&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 執行帶參數SQL操作&lt;br/&gt;     * 返回:運行結果&lt;br/&gt;     * 類型:陣列或數位&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; _procfetch(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;, &lt;span style="color: #800080;"&gt;$type&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;array&lt;/span&gt;&lt;span style="color: #000000;"&gt;();&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;-&amp;gt;prepare(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        self&lt;/span&gt;::getPDOError(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (self::&lt;span style="color: #800080;"&gt;$parms&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt; &lt;span style="color: #800080;"&gt;$pram&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;            self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;bindParam(&lt;span style="color: #800080;"&gt;$pram&lt;/span&gt;[0], &lt;span style="color: #800080;"&gt;$pram&lt;/span&gt;[1], &lt;span style="color: #800080;"&gt;$pram&lt;/span&gt;[2], &lt;span style="color: #800080;"&gt;$pram&lt;/span&gt;[3&lt;span style="color: #000000;"&gt;]);&lt;br/&gt;        }&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;execute();&lt;br/&gt;        self&lt;/span&gt;::getSTMTError(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;setFetchMode(PDO::&lt;span style="color: #000000;"&gt;FETCH_ASSOC);&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;switch&lt;/span&gt; (&lt;span style="color: #800080;"&gt;$type&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt; '0':&lt;br/&gt;                &lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;fetch();&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt; '1':&lt;br/&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;                do{&lt;br/&gt;//                    $result[] = self::$stmt-&amp;gt;fetchAll();&lt;br/&gt;//                } while (self::$stmt-&amp;gt;nextRowset());&lt;/span&gt;&lt;br/&gt;                &lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;fetchAll();&lt;br/&gt;                self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;closeCursor();&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt; '2':&lt;br/&gt;                &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;                    &lt;/span&gt;&lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;rowCount();&lt;br/&gt;                } &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br/&gt;                    &lt;/span&gt;&lt;span style="color: #800080;"&gt;$result&lt;/span&gt; = 0&lt;span style="color: #000000;"&gt;;&lt;br/&gt;                }&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        }&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #800080;"&gt;$result&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    }&lt;br/&gt;    &lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 權為測試使用,目前沒有辦法獲取到OUT參數.&lt;br/&gt;     * 另外在一存講過程中若有rowset,同時還有OUT參數時,&lt;br/&gt;     * 即使$db-&amp;gt;scalar("select @Rcount AS Rcount", "Rcount")這种方式仍然獲到不到,&lt;br/&gt;     * 執行時會出現下面的錯誤:&lt;br/&gt;     * Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; procExecOut() {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;$colour = 'red';&lt;/span&gt;&lt;br/&gt;        self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt; = self::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;-&amp;gt;prepare('CALL puree_fruit(?)'&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;bindParam(1, &lt;span style="color: #800080;"&gt;$colour&lt;/span&gt;,PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;execute();&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;print&lt;/span&gt;("After pureeing fruit, the colour is: &lt;span style="color: #800080;"&gt;$colour&lt;/span&gt;"&lt;span style="color: #000000;"&gt;);&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;********************Proc操作方法結束********************&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;    &lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;********************錯誤處理開始********************&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;    &lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 設置是否為調試模式&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; setDebugMode(&lt;span style="color: #800080;"&gt;$mode&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; (&lt;span style="color: #800080;"&gt;$mode&lt;/span&gt; == &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;) ? self::&lt;span style="color: #800080;"&gt;$debug&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt; : self::&lt;span style="color: #800080;"&gt;$debug&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 捕獲PDO錯誤資訊&lt;br/&gt;     * 返回:出錯資訊&lt;br/&gt;     * 類型:字串&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; getPDOError(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$debug&lt;/span&gt; ? self::errorfile(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;) : ''&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (self::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;-&amp;gt;errorCode() != '00000'&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #800080;"&gt;$info&lt;/span&gt; = (self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;) ? self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;errorInfo() : self::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;errorInfo();&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;echo&lt;/span&gt; (self::sqlError('mySQL Query Error', &lt;span style="color: #800080;"&gt;$info&lt;/span&gt;[2], &lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;));&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;exit&lt;/span&gt;&lt;span style="color: #000000;"&gt;();&lt;br/&gt;        }&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; getSTMTError(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        self&lt;/span&gt;::&lt;span style="color: #800080;"&gt;$debug&lt;/span&gt; ? self::errorfile(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;) : ''&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;errorCode() != '00000'&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #800080;"&gt;$info&lt;/span&gt; = (self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;) ? self::&lt;span style="color: #800080;"&gt;$stmt&lt;/span&gt;-&amp;gt;errorInfo() : self::&lt;span style="color: #800080;"&gt;$DB&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;errorInfo();&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;echo&lt;/span&gt; (self::sqlError('mySQL Query Error', &lt;span style="color: #800080;"&gt;$info&lt;/span&gt;[2], &lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;));&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;exit&lt;/span&gt;&lt;span style="color: #000000;"&gt;();&lt;br/&gt;        }&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 寫入錯誤日志&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; errorfile(&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;echo&lt;/span&gt; &lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; . '&amp;lt;br /&amp;gt;'&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$errorfile&lt;/span&gt; = _ROOT . './dberrorlog.php'&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; = &lt;span style="color: #008080;"&gt;str_replace&lt;/span&gt;(&lt;span style="color: #0000ff;"&gt;array&lt;/span&gt;("\n", "\r", "\t", "  ", "  ", "  "), &lt;span style="color: #0000ff;"&gt;array&lt;/span&gt;(" ", " ",&lt;br/&gt;            " ", " ", " ", " "), &lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!&lt;span style="color: #008080;"&gt;file_exists&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$errorfile&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) {&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #800080;"&gt;$fp&lt;/span&gt; = &lt;span style="color: #008080;"&gt;file_put_contents&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$errorfile&lt;/span&gt;, "&amp;lt;?PHP exit('Access Denied'); ?&amp;gt;\n" . &lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        } &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #800080;"&gt;$fp&lt;/span&gt; = &lt;span style="color: #008080;"&gt;file_put_contents&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$errorfile&lt;/span&gt;, "\n" . &lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;,&lt;span style="color: #000000;"&gt; FILE_APPEND);&lt;br/&gt;        }&lt;br/&gt;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br/&gt;     * 作用:運行錯誤資訊&lt;br/&gt;     * 返回:運行錯誤資訊和SQL語句&lt;br/&gt;     * 類型:字元&lt;br/&gt;     &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; sqlError(&lt;span style="color: #800080;"&gt;$message&lt;/span&gt; = '', &lt;span style="color: #800080;"&gt;$info&lt;/span&gt; = '', &lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; = ''&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$html&lt;/span&gt; = '&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;'&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$html&lt;/span&gt; .= '&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;mySQL Message&amp;lt;/title&amp;gt;&amp;lt;style type="text/css"&amp;gt;body {margin:0px;color:#555555;font-size:12px;background-color:#efefef;font-family:Verdana} ol {margin:0px;padding:0px;} .w {width:800px;margin:100px auto;padding:0px;border:1px solid #cccccc;background-color:#ffffff;} .h {padding:8px;background-color:#ffffcc;} li {height:auto;padding:5px;line-height:22px;border-top:1px solid #efefef;list-style:none;overflow:hidden;}&amp;lt;/style&amp;gt;&amp;lt;/head&amp;gt;'&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$html&lt;/span&gt; .= '&amp;lt;body&amp;gt;&amp;lt;div class="w"&amp;gt;&amp;lt;ol&amp;gt;'&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #800080;"&gt;$message&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #800080;"&gt;$html&lt;/span&gt; .= '&amp;lt;div class="h"&amp;gt;' . &lt;span style="color: #800080;"&gt;$message&lt;/span&gt; . '&amp;lt;/div&amp;gt;'&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        }&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$html&lt;/span&gt; .= '&amp;lt;li&amp;gt;Date: ' . &lt;span style="color: #008080;"&gt;date&lt;/span&gt;('Y-n-j H:i:s', &lt;span style="color: #008080;"&gt;time&lt;/span&gt;()) . '&amp;lt;/li&amp;gt;'&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #800080;"&gt;$info&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #800080;"&gt;$html&lt;/span&gt; .= '&amp;lt;li&amp;gt;SQLID: ' . &lt;span style="color: #800080;"&gt;$info&lt;/span&gt; . '&amp;lt;/li&amp;gt;'&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        }&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #800080;"&gt;$sql&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #800080;"&gt;$html&lt;/span&gt; .= '&amp;lt;li&amp;gt;Error: ' . &lt;span style="color: #800080;"&gt;$sql&lt;/span&gt; . '&amp;lt;/li&amp;gt;'&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        }&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$html&lt;/span&gt; .= '&amp;lt;/ol&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;'&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #800080;"&gt;$html&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    }&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;********************錯誤處理結束********************&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;&lt;/span&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;此类还有两个问题没有处理(基本也可以使用)：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;１，在调用有out／inout参数的mysql存储过程时，没有办法像下面这样获取参数值，以下方法是官方的demo，可在我电脑上却从来没有获取到相应的值．&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #ff8000;"&gt;/*&amp;nbsp;Call&amp;nbsp;a&amp;nbsp;stored&amp;nbsp;procedure&amp;nbsp;with&amp;nbsp;an&amp;nbsp;INOUT&amp;nbsp;parameter&amp;nbsp;*/&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$colour&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;'red'&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #007700;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$sth&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$dbh&lt;/span&gt;&lt;span style="color: #007700;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;prepare&lt;/span&gt;&lt;span style="color: #007700;"&gt;(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;'CALL&amp;nbsp;puree_fruit(?)'&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #007700;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$sth&lt;/span&gt;&lt;span style="color: #007700;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;bindParam&lt;/span&gt;&lt;span style="color: #007700;"&gt;(&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;1&lt;/span&gt;&lt;span style="color: #007700;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$colour&lt;/span&gt;&lt;span style="color: #007700;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;PDO&lt;/span&gt;&lt;span style="color: #007700;"&gt;::&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;PARAM_STR&lt;/span&gt;&lt;span style="color: #007700;"&gt;|&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;PDO&lt;/span&gt;&lt;span style="color: #007700;"&gt;::&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;PARAM_INPUT_OUTPUT&lt;/span&gt;&lt;span style="color: #007700;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;12&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #007700;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$sth&lt;/span&gt;&lt;span style="color: #007700;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;execute&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #007700;"&gt;();&lt;br /&gt;print(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"After&amp;nbsp;pureeing&amp;nbsp;fruit,&amp;nbsp;the&amp;nbsp;colour&amp;nbsp;is:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb;"&gt;$colour&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #007700;"&gt;&lt;span style="font-family: Courier New;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; color: #000000; font-size: 12px;"&gt;２，因为上面没有办法用&lt;span style="font-family: Courier New;"&gt;PDO::PARAM_INPUT_OUTPUT的方式来获到out值．因此我改以下面的方式处理．结果又遇到另一个错误．好像是说没办法返回多个rowset的问题．&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; color: #007700; font-size: 12px;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="color: #0000bb;"&gt;$db-&amp;gt;pramclear();&lt;br /&gt;$db-&amp;gt;pramadd(1, 3, PDO::PARAM_INT,4,false);&lt;br /&gt;$db-&amp;gt;procGetAll("CALL UP_Banner_GetList(?,@Rcount);");&lt;br /&gt;$db-&amp;gt;scalar("select @Rcount AS Rcount", "Rcount");&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; color: #000000; font-size: 12px;"&gt;&lt;span style="font-family: Courier New;"&gt;错误信息：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; color: #ff0000; font-size: 12px;"&gt;&lt;span style="font-family: Courier New;"&gt;Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; color: #000000; font-size: 12px;"&gt;&lt;span style="font-family: Courier New;"&gt;以上两个问题点在网上也找了很多资料，有的说是php的bug，也有的说在linux机器上不会有这样的问题．弄了这几天总的感觉是对pdo挺失望的．原以为自己可以封装好一个操作类，方便以后使用．希望哪位高手如果有也有此经历，请留言告之在下如何解决．谢谢!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Athrun/aggbug/2457200.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Athrun/archive/2012/04/19/pdo_class.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Athrun/archive/2012/04/18/pdo.html</id><title type="text">[轉]PDO知识</title><summary type="text">轉自 : http://apps.hi.baidu.com/share/detail/50250843#content例 1654. Connecting to MySQL&lt;?php$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);?&gt;例 1655. Handling connection errors&lt;?phptry {$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);foreach </summary><published>2012-04-18T01:02:00Z</published><updated>2012-04-18T01:02:00Z</updated><author><name>Athrun</name><uri>http://www.cnblogs.com/Athrun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Athrun/archive/2012/04/18/pdo.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Athrun/archive/2012/04/18/pdo.html"/><content type="html">&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;轉自 : &lt;a href="http://apps.hi.baidu.com/share/detail/50250843#content"&gt;http://apps.hi.baidu.com/share/detail/50250843#content&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;&lt;em&gt;例 1654. Connecting to MySQL&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;&lt;em&gt;例 1655. Handling connection errors&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;try {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;foreach ($dbh-&amp;gt;query('SELECT * from FOO') as $row) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; print_r($row);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$dbh = null;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;} catch (PDOException $e) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;print "Error!: " . $e-&amp;gt;getMessage() . "&amp;lt;br/&amp;gt;";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;die();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;&lt;em&gt;例 1656. Closing a connection&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;// use the connection here&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;// and now we're done; close it&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$dbh = null;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;&lt;em&gt;例 1657. Persistent connections&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; PDO::ATTR_PERSISTENT =&amp;gt; true&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;&lt;em&gt;例 1658. Executing a batch in a transaction&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;try {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; $dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; array(PDO::ATTR_PERSISTENT =&amp;gt; true));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; echo "Connected\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; $dbh-&amp;gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; $dbh-&amp;gt;beginTransaction();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; $dbh-&amp;gt;exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; $dbh-&amp;gt;exec("insert into salarychange (id, amount, changedate)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; values (23, 50000, NOW())");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; $dbh-&amp;gt;commit();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;} catch (Exception $e) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; $dbh-&amp;gt;rollBack();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; echo "Failed: " . $e-&amp;gt;getMessage();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;&lt;em&gt;例 1659. Repeated inserts using prepared statements&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;This example performs an INSERT query by substituting a name and a value for the named placeholders.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt = $dbh-&amp;gt;prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;bindParam(':name', $name);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;bindParam(':value', $value);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;// insert one row&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$name = 'one';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$value = 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;execute();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;// insert another row with different values&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$name = 'two';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$value = 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;execute();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;&lt;em&gt;例 1660. Repeated inserts using prepared statements&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;This example performs an INSERT query by substituting a name and a value for the positional ? placeholders.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt = $dbh-&amp;gt;prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;bindParam(1, $name);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;bindParam(2, $value);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;// insert one row&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$name = 'one';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$value = 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;execute();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;// insert another row with different values&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$name = 'two';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$value = 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;execute();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;&lt;em&gt;例 1661. Fetching data using prepared statements&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;This example fetches data based on a key value supplied by a form. The user input is automatically quoted, so there is no risk of a SQL injection attack.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt = $dbh-&amp;gt;prepare("SELECT * FROM REGISTRY where name = ?");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;if ($stmt-&amp;gt;execute(array($_GET['name']))) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; while ($row = $stmt-&amp;gt;fetch()) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;print_r($row);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;&lt;em&gt;例 1662. Calling a stored procedure with an output parameter&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt = $dbh-&amp;gt;prepare("CALL sp_returns_string(?)");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;bindParam(1, $return_value, PDO::PARAM_STR, 4000);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;// call the stored procedure&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;execute();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;print "procedure returned $return_value\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;&lt;em&gt;例 1663. Calling a stored procedure with an input/output parameter&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt = $dbh-&amp;gt;prepare("CALL sp_takes_string_returns_string(?)");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$value = 'hello';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;bindParam(1, $value, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;// call the stored procedure&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;execute();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;print "procedure returned $value\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;&lt;em&gt;例 1664. Invalid use of placeholder&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt = $dbh-&amp;gt;prepare("SELECT * FROM REGISTRY where name LIKE '%?%'");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;execute(array($_GET['name']));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;// placeholder must be used in the place of the whole value&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt = $dbh-&amp;gt;prepare("SELECT * FROM REGISTRY where name LIKE ?");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;execute(array("%$_GET[name]%"));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;&lt;em&gt;例 1665. Displaying an image from a database&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;This example binds the LOB into the variable named $lob and then sends it to the browser using fpassthru(). Since the LOB is represented as a stream, functions such as fgets(), fread() and stream_get_contents() can be used on it.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt = $db-&amp;gt;prepare("select contenttype, imagedata from images where id=?");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;execute(array($_GET['id']));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;bindColumn(1, $type, PDO::PARAM_STR, 256);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;bindColumn(2, $lob, PDO::PARAM_LOB);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;fetch(PDO::FETCH_BOUND);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;header("Content-Type: $type");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;fpassthru($lob);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;&lt;em&gt;例 1666. Inserting an image into a database&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;This example opens up a file and passes the file handle to PDO to insert it as a LOB. PDO will do its best to get the contents of the file up to the database in the most efficient manner possible.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt = $db-&amp;gt;prepare("insert into images (id, contenttype, imagedata) values (?, ?, ?)");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$id = get_new_id(); // some function to allocate a new ID&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;// assume that we are running as part of a file upload form&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;// You can find more information in the PHP documentation&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$fp = fopen($_FILES['file']['tmp_name'], 'rb');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;bindParam(1, $id);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;bindParam(2, $_FILES['file']['type']);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;bindParam(3, $fp, PDO::PARAM_LOB);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$db-&amp;gt;beginTransaction();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;execute();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$db-&amp;gt;commit();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;&lt;em&gt;例 1667. Inserting an image into a database: Oracle&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;Oracle requires a slightly different syntax for inserting a lob from a file. It's also essential that you perform the insert under a transaction, otherwise your newly inserted LOB will be committed with a zero-length as part of the implicit commit that happens when the query is executed:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$db = new PDO('oci:', 'scott', 'tiger');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt = $db-&amp;gt;prepare("insert into images (id, contenttype, imagedata) " .&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; "VALUES (?, ?, EMPTY_BLOB()) RETURNING imagedata INTO ?");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$id = get_new_id(); // some function to allocate a new ID&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;// assume that we are running as part of a file upload form&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;// You can find more information in the PHP documentation&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$fp = fopen($_FILES['file']['tmp_name'], 'rb');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;bindParam(1, $id);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;bindParam(2, $_FILES['file']['type']);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;bindParam(3, $fp, PDO::PARAM_LOB);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;beginTransaction();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;execute();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;$stmt-&amp;gt;commit();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;&lt;em&gt;例 1668. The PDOException class&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;class PDOException extends Exception&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;public $errorInfo = null; // corresponds to PDO::errorInfo()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; // or PDOStatement::errorInfo()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;protected $message; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; // textual error message&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; // use Exception::getMessage() to access it&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;protected $code; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; // SQLSTATE error code&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; // use Exception::getCode() to access it&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;&lt;em&gt;例 1669. using PDO::ATTR_DRIVER_NAME&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;if ($db-&amp;gt;getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp; echo "Running on mysql; doing something mysql specific here\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;參考資料:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;a href="http://www.cnblogs.com/aspxphpjsprb/archive/2010/05/01/1725467.html"&gt;http://www.cnblogs.com/aspxphpjsprb/archive/2010/05/01/1725467.html&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/Athrun/aggbug/2454753.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Athrun/archive/2012/04/18/pdo.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Athrun/archive/2012/04/14/2446752.html</id><title type="text">SQL Server 2005中的分区表</title><summary type="text">SQL Server 2005中的分区表（一）：什么是分区表？为什么要用分区表？如何创建分区表？SQL Server 2005中的分区表（二）：如何添加、查询、修改分区表中的数据SQL Server 2005中的分区表（三）：将普通表转换成分区表SQL Server 2005中的分区表（四）：删除（合并）一个分区SQL Server 2005中的分区表（五）：添加一个分区SQL Server 2005中的分区表（六）：将已分区表转换成普通表</summary><published>2012-04-14T01:19:00Z</published><updated>2012-04-14T01:19:00Z</updated><author><name>Athrun</name><uri>http://www.cnblogs.com/Athrun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Athrun/archive/2012/04/14/2446752.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Athrun/archive/2012/04/14/2446752.html"/><content type="html">&lt;p&gt;&lt;a href="http://blog.csdn.net/smallfools/archive/2009/12/03/4930810.aspx"&gt;SQL Server 2005中的分区表（一）：什么是分区表？为什么要用分区表？如何创建分区表？&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.csdn.net/smallfools/archive/2009/12/03/4932936.aspx"&gt;SQL Server 2005中的分区表（二）：如何添加、查询、修改分区表中的数据&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.csdn.net/smallfools/archive/2009/12/03/4934119.aspx"&gt;SQL Server 2005中的分区表（三）：将普通表转换成分区表&amp;nbsp;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.csdn.net/smallfools/archive/2009/12/04/4937878.aspx"&gt;SQL Server 2005中的分区表（四）：删除（合并）一个分区&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.csdn.net/smallfools/archive/2009/12/04/4940185.aspx"&gt;SQL Server 2005中的分区表（五）：添加一个分区&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.csdn.net/smallfools/archive/2009/12/14/5004100.aspx"&gt;SQL Server 2005中的分区表（六）：将已分区表转换成普通表&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Athrun/aggbug/2446752.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Athrun/archive/2012/04/14/2446752.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Athrun/archive/2012/04/14/mysql_partition.html</id><title type="text">MySql表分区</title><summary type="text">管方资料:http://dev.mysql.com/doc/refman/5.1/zh/partitioning.html#partitioning-overview</summary><published>2012-04-14T01:18:00Z</published><updated>2012-04-14T01:18:00Z</updated><author><name>Athrun</name><uri>http://www.cnblogs.com/Athrun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Athrun/archive/2012/04/14/mysql_partition.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Athrun/archive/2012/04/14/mysql_partition.html"/><content type="html">&lt;p&gt;管方资料:&lt;a href="http://dev.mysql.com/doc/refman/5.1/zh/partitioning.html#partitioning-overview"&gt;http://dev.mysql.com/doc/refman/5.1/zh/partitioning.html#partitioning-overview&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Athrun/aggbug/2446749.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Athrun/archive/2012/04/14/mysql_partition.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Athrun/archive/2012/04/11/PHP_READ_EXCEL_IMAGE.html</id><title type="text">[轉]PHPExcel读取EXCEL中的图片</title><summary type="text">From : http://www.yeephp.com/study/919.htmlPHPExcel是相当强大的 MS Office Excel 文档生成类库，当需要输出比较复杂格式数据的时候，PHPExcel 是个不错的选择。经过认真研究API文档和查看官方文档，终于找到读取EXCEL中的图片，目前我只能读取excel 2003格式的。excel2007貌似还不支持。其中主要使用的API为PHPExcel_Worksheet，PHPExcel_Worksheet_BaseDrawing，PHPExcel_Worksheet_MemoryDrawing。废话少说，直接上代码：require_</summary><published>2012-04-11T08:35:00Z</published><updated>2012-04-11T08:35:00Z</updated><author><name>Athrun</name><uri>http://www.cnblogs.com/Athrun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Athrun/archive/2012/04/11/PHP_READ_EXCEL_IMAGE.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Athrun/archive/2012/04/11/PHP_READ_EXCEL_IMAGE.html"/><content type="html">&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;From : &lt;a href="http://www.yeephp.com/study/919.html"&gt;http://www.yeephp.com/study/919.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;PHPExcel是相当强大的 MS Office Excel 文档生成类库，当需要输出比较复杂格式数据的时候，&lt;a class="st_tag internal_tag" title="标签 phpexcel 下的日志" href="http://phpexcel.codeplex.com/" rel="tag" target="_blank"&gt;PHPExcel&lt;/a&gt; 是个不错的选择。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;经过认真研究API文档和查看官方文档，终于找到读取EXCEL中的图片，目前我只能读取excel 2003格式的。excel2007貌似还不支持。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;其中主要使用的API为PHPExcel_Worksheet，PHPExcel_Worksheet_BaseDrawing，PHPExcel_Worksheet_MemoryDrawing。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;废话少说，直接上代码：&lt;/span&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;span style="color: #0000ff;"&gt;require_once&lt;/span&gt; './Classes/PHPExcel.php'&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$objPHPExcel&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; PHPExcel();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$objReader&lt;/span&gt; = PHPExcel_IOFactory::createReader('Excel5');  &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;加载2003的&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #800080;"&gt;$objPHPExcel&lt;/span&gt; = &lt;span style="color: #800080;"&gt;$objReader&lt;/span&gt;-&amp;gt;load("goods_list.xls");  &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;载入文件&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (&lt;span style="color: #800080;"&gt;$objPHPExcel&lt;/span&gt;-&amp;gt;getSheet(0)-&amp;gt;getDrawingCollection() &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt; &lt;span style="color: #800080;"&gt;$k&lt;/span&gt; =&amp;gt; &lt;span style="color: #800080;"&gt;$drawing&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$codata&lt;/span&gt; = &lt;span style="color: #800080;"&gt;$drawing&lt;/span&gt;-&amp;gt;getCoordinates(); &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;得到单元数据 比如G2单元&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #800080;"&gt;$filename&lt;/span&gt; = &lt;span style="color: #800080;"&gt;$drawing&lt;/span&gt;-&amp;gt;getIndexedFilename();  &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;文件名&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008080;"&gt;ob_start&lt;/span&gt;&lt;span style="color: #000000;"&gt;();&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #008080;"&gt;call_user_func&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #800080;"&gt;$drawing&lt;/span&gt;-&amp;gt;getRenderingFunction(),&lt;br/&gt;            &lt;span style="color: #800080;"&gt;$drawing&lt;/span&gt;-&amp;gt;&lt;span style="color: #000000;"&gt;getImageResource()&lt;br/&gt;        );&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #800080;"&gt;$imageContents&lt;/span&gt; = &lt;span style="color: #008080;"&gt;ob_get_contents&lt;/span&gt;&lt;span style="color: #000000;"&gt;();&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #008080;"&gt;file_put_contents&lt;/span&gt;('pic/'.&lt;span style="color: #800080;"&gt;$codata&lt;/span&gt;.'_'.&lt;span style="color: #800080;"&gt;$filename&lt;/span&gt;.'.jpg',&lt;span style="color: #800080;"&gt;$imageContents&lt;/span&gt;); &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;把文件保存到本地&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #008080;"&gt;ob_end_clean&lt;/span&gt;&lt;span style="color: #000000;"&gt;();&lt;br/&gt;} &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Athrun/aggbug/2442598.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Athrun/archive/2012/04/11/PHP_READ_EXCEL_IMAGE.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Athrun/archive/2012/04/11/php_read_excel.html</id><title type="text">[轉]php 读取excel 内容</title><summary type="text">From : http://apps.hi.baidu.com/share/detail/23157364常用的用PHP读取EXCEL的方法有以下三种，各自有各自的优缺点。个人推荐用第三种方法，因为它可以跨平台使用。1. 以.csv格式读取将.xls转换成.csv的文本格式，然后再用PHP分析这个文件，和PHP分析文本没有什么区别。优点：跨平台，效率比较高、可以读写。缺点：只能直接使用.csv的文件，如果经常接受.xls二进制文件的话需要手工转换，不能自动化。一个文件只有一个SHEET。PHP有自带的分析.csv函数：fgetcsvarray fgetcsv ( int $handle [, </summary><published>2012-04-11T08:29:00Z</published><updated>2012-04-11T08:29:00Z</updated><author><name>Athrun</name><uri>http://www.cnblogs.com/Athrun/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Athrun/archive/2012/04/11/php_read_excel.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Athrun/archive/2012/04/11/php_read_excel.html"/><content type="html">&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;From : &lt;a href="http://apps.hi.baidu.com/share/detail/23157364"&gt;http://apps.hi.baidu.com/share/detail/23157364&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;常用的用PHP读取EXCEL的方法有以下三种，各自有各自的优缺点。个人推荐用第三种方法，因为它可以跨平台使用。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;1. 以.csv格式读取&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;将.xls转换成.csv的文本格式，然后再用PHP分析这个文件，和PHP分析文本没有什么区别。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;优点：跨平台，效率比较高、可以读写。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;缺点：只能直接使用.csv的文件，如果经常接受.xls二进制文件的话需要手工转换，不能自动化。一个文件只有一个SHEET。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;PHP有自带的分析.csv函数：fgetcsv&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;handle 一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;length （可选）必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略（在 PHP 5.0.4 以后的版本中设为 0）该参数的话，那么长度就没有限制，不过可能会影响执行效率。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;delimiter （可选）设置字段分界符（只允许一个字符），默认值为逗号。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;enclosure （可选）设置字段环绕符（只允许一个字符），默认值为双引号。该参数是在 PHP 4.3.0 中添加的。 和 fgets() 类似，只除了 fgetcsv() 解析读入的行并找出 CSV 格式的字段然后返回一个包含这些字段的数组。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;fgetcsv() 出错时返回 FALSE，包括碰到文件结束时。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;注意: CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组，不会被当成错误。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;当然也可以自己手动分析字符串。&lt;/span&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&amp;lt;?&lt;span style="color: #000000;"&gt;php  &lt;br/&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$row&lt;/span&gt; = 1&lt;span style="color: #000000;"&gt;;  &lt;br/&gt;&lt;/span&gt;&lt;span style="color: #800080;"&gt;$handle&lt;/span&gt; = &lt;span style="color: #008080;"&gt;fopen&lt;/span&gt;("test.csv","r"&lt;span style="color: #000000;"&gt;);  &lt;br/&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;while&lt;/span&gt; (&lt;span style="color: #800080;"&gt;$data&lt;/span&gt; = &lt;span style="color: #008080;"&gt;fgetcsv&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$handle&lt;/span&gt;, 1000, ","&lt;span style="color: #000000;"&gt;)) {  &lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #800080;"&gt;$num&lt;/span&gt; = &lt;span style="color: #008080;"&gt;count&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$data&lt;/span&gt;&lt;span style="color: #000000;"&gt;);  &lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;echo&lt;/span&gt; "  &lt;br/&gt;    &lt;span style="color: #800080;"&gt;$num&lt;/span&gt; fields in line &lt;span style="color: #800080;"&gt;$row&lt;/span&gt;:\n"&lt;span style="color: #000000;"&gt;;  &lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #800080;"&gt;$row&lt;/span&gt;++&lt;span style="color: #000000;"&gt;;  &lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color: #800080;"&gt;$c&lt;/span&gt;=0; &lt;span style="color: #800080;"&gt;$c&lt;/span&gt; &amp;lt; &lt;span style="color: #800080;"&gt;$num&lt;/span&gt;; &lt;span style="color: #800080;"&gt;$c&lt;/span&gt;++&lt;span style="color: #000000;"&gt;) {  &lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;echo&lt;/span&gt; &lt;span style="color: #800080;"&gt;$data&lt;/span&gt;[&lt;span style="color: #800080;"&gt;$c&lt;/span&gt;] . "\n"&lt;span style="color: #000000;"&gt;;  &lt;br/&gt;    }  &lt;br/&gt;}  &lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;fclose&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$handle&lt;/span&gt;&lt;span style="color: #000000;"&gt;);  &lt;br/&gt;&lt;/span&gt;?&amp;gt; &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-family: 宋体; color: #000000; font-size: 12px;"&gt;还可以利用fputcsv函数将行格式化为 CSV 并写入文件指针。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;2. ODBC链接数据源&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;优点：支持多种格式，cvs, xls等。支持读写，使用标准SQL语言，和SQLSERVER、MYSQL数据库几乎完全一样。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;缺点：值支持windows服务器&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;strong&gt;3. PHP自定义类&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;优点：跨平台。某些类支持写操作。支持.xls二进制文件&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;常用的类有phpExcelReader、PHPExcel。其中后者支持读写，但是需要php5.2以上版本。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;phpExcelReader是专门用来读取文件的。返回一个数组，包含表格的所有内容。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;该 class 使用的方法可以参考网站下载回来的压缩档中的 example.php。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;不过我下载回来的 (版本 2009-03-30)，有两点要注意：&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;reader.php 中的下面这行要修改&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;将 require_once 'Spreadsheet/Excel/Reader/OLERead.php';&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;改为 require_once 'oleread.inc';&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;example.php 中&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;修改 $data-&amp;gt;setOutputEncoding('CP1251');&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;为 $data-&amp;gt;setOutputEncoding('CP936');&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;修改 nl2br(htmlentities($data-&amp;gt;sheets[$sheet]['cells'][$row][$col]));&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;为 $table_output[$sheet] .= nl2br(htmlspecialchars($data-&amp;gt;sheets[$sheet]['cells'][$row][$col]));&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;不然中文会有问题。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;繁体的话可以修改为CP950、日文是CP932，具体可参考codepage说明。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;修改 $data-&amp;gt;read('jxlrwtest.xls') 为自己的 excel 文件名，zip 档中附的 jxlrwtest.xls 应该是坏了。&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;这是下载地址：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;phpExcelReader：&lt;a href="http://sourceforge.net/projects/phpexcelreader/" target="_blank"&gt;http://sourceforge.net/projects/phpexcelreader/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;PHPExcel：&lt;a href="http://www.codeplex.com/PHPExcel/Wiki/View.aspx?title=Documents&amp;amp;referringTitle=Home"&gt;http://www.codeplex.com/PHPExcel/Wiki/View.aspx?title=Documents&amp;amp;referringTitle=Home&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;參考資料:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 12px;"&gt;&lt;a href="http://www.baidu.com/s?wd=php%B6%C1%C8%A1excel&amp;amp;pn=0&amp;amp;f=3" target="_blank"&gt;Baidu Search&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Athrun/aggbug/2442581.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Athrun/archive/2012/04/11/php_read_excel.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
