php数据库触发器 数据库如何触发触发器

php是干什么用的?

PHP主要用来做网站开发,许多小型网站都用PHP开发,PHP是开源的,这是使得PHP经久不衰的原因。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网络空间、营销软件、网站建设、官渡网站维护、网站推广。

在电商、社区等方面,PHP具备非常成熟的开源代码和模板,因此使得PHP应用极为广泛。

PHP可以完成任何CGI脚本可以完成的任务,但它的功能的发挥取决于它和各种数据库的兼容性。

php的特点:

PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。

PHP可以比CGI或者Perl更快速的执行动态网页——动态页面方面,与其他的编程语言相比。

PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多。

PHP具有非常强大的功能,所有的CGI的功能PHP都能实现。

PHP支持几乎所有流行的数据库以及操作系统。

最重要的是PHP可以用C、C++进行程序的扩展!

零基础,想学习PHP,应该先学习什么?

PHP需要掌握的知识还是比较多的,最基本的比如:PHP基本的语法、php框架以及CMS、mysql数据库设计表、mysql数据库的基本SQL语句。现在一般PHP的都得会前端,那就包括:js/ajax、html、css。如果更高点层次的就是linux服务器。

PHP攻城狮践行学习路线图:

1、用集成环境安装PHP环境,一定要记住这一点,不要自己分开去装,尤其是自学的朋友。不然你会觉得很复杂,会没有信心学下去的。也要注意任何高手都不是一蹴而就的,是一步一步,不同的阶段历练才有最后的沉淀。

2、先了解一些基本的变量类型,语法,函数,基本逻辑,写简单的代码。前期以尝试,培养兴趣为主。这段时间是打基础很好的时候,这个会影响你后面的发展,不过也可以在后期去完善。

3、这时候你可能觉得PHP就这样,没什么难度,或者有的觉得太难了,简直一脸疑惑。这个到底有什么用。在这时候一定要坚持下来,可以试试先放一下,别太较真。慢慢的困惑你的会被你领悟的。这时,建议学习html+css+js,缓解自己的压力,这个相对简单,简历信心。尤其是js,总结其实有相同的思路,可以结合着一起体会。

4、这些都感觉有80%了解就可以先放放了,现在在学习MySQL,也是先了解基础的。这个是干什么的,我可以用它做什么。因为之前装的集成环境。为什么感觉是凌乱的,我想告诉你的是,一是不要在自己没能力解决问题的时候死磕,浪费时间,丧失信心。这时候我们要做的是学习壮大自己,不要灰心。二是我本来觉得这一切都了解才是完整的。我们的目标也是要把这些都做好,这才是一个合格的PHP程序员。

5、这一切都顺利的话,你基本离预设的目标不远了,完成了整个学习的70%了。后面的是在之前的基础上升华。把HTML和css、js结合、静态文件和PHP结合、PHP和MySQL结合。这个阶段可能越到的问题会异常的多,一定要学会解决问题。网上很多都是答案,同样你要学会问问题。

6、这些之后你基本已经快到学习的尾声了,但还缺少经验。这时,你可以看一些网上开源的cms,例如织梦,国内用的多,越到问题好解决。看看一些视频(网上免费的很多),查漏补缺,总结归纳形成自己的知识体系。是时候该准备庆祝下自己这段的时间没有白费(一般2到3各月,看平时每天花的时间),基本成为一个合格的PHP程序员了。也该恭喜你了,其实并不那么难。坚持,坚持;努力,努力;学习,学习

请问大虾们

电脑编程的行吗?

FreeBasic

可以编写WINDONS程序。

这个软件是免费的,而且很小,大概十几分钟就下来了。

BASIC学好后,可以看VB,但我不知道是否能在这个软件运行。

学完BASIC,你的程序基础就差不多了。这个时候有四条路在你面前:

VB,C,JAVA,PASCAL。

其中,VB最简单,但可能工作不是那么好找,其它三种可以,其中C,JAVA应该是最流行的。

就我的精练,PASCAL比较简单,JAVA迟滞,最难是C。

下面我分别讲讲。

首先,PASCAL:

程序设计方法与PASCAL语言

本书是作者多年教学的总结,通过分析、加工、提炼而成。针对程序设计语言的特点,针对人的思维特点,以面向程序设计为中心,以程序设计方法为主线来介绍PASCAL语言的基于结构化程序设计思想的教科书。作者力求使读者通过学习本书不仅掌握PASCAL语言,更主要的是使读 ...

你可以在

FreePascal

下载免费的编译器。

然后,VB:

VB语言程序设计

本书以VISUAL BASIC 6.0为语言背景,以程序结构为主线,介绍可视化程序设计的基本知识和编程方法。内容包括:面向对象的初步概念,程序设计基础,数据输入/输出,选择结构设计,循环结构设计,数组,过程,数据文件,常用控件的使用,程序调试等。 ...

C语言

C程序设计(第二版)

C语言是国内外广泛使用的计算机语言,是计算机应用人员应掌握的一种程序设计工具。本书第一版于1991年出版,全书针对初学者的特点,精心策划、准确定位、概念清晰、例题丰富、深入浅出,受到专家和读者的一致好评。普遍认为它是学习C语言的好教材,被全国大多数高校 ...

C语言参考手册

语言参考手册的最新版,在强调正确性、可移植性和可维护性的基础上,对C语言的具体细节、运行库以及C语言编程风格做了完整、准确的描述。本书涵盖了传统C语言、C89、C95、C99等所有C语言版本的实现,同时讨论了C++与C语言兼容的部分。全书自上而下介绍了C语言的词法结构、预处理器、声明、类型表达式、语句、函数和运? ...

C++沉思录 C++沉思录

编程技术,不仅告诉你如何编程,还告诉你为什么要这样编程。本书曾出现在众多的C++专家推荐书目中。 这将是C++程序员的必读之作。因为:它包含了丰富的C++思想和技术,从详细的代码实例总结出程序设计的原则和方法。 不仅教你如何遵循规则,还教你如何思考C++编程。既包括面向对象编程也包括泛型编程。 探究STL这一近 ..

泛型编程与STL

编程与STL》阐述了泛型编程的中心思想:concepts、modeling、refinement,并为你展示这些思想如何导出STL的基础概念:iterators、containers、function objects。循此路线,你可以把STL想像为一个由来的完整优势……

C++编程思想第2卷:实用编程技术

编程技术和最佳的实践方法,深入探究了异常处理方法和异常安全设计;介绍C++的字符串、输入输出流、STL算法、容器和模板的现代用法,包括模板元编程;解释多重继承问题的难点,展示RTTI的实际使用,描述了典型的设计模式及其实现,特别介绍被认为是标准C++下一版特征之一的多线程处理编程技术,并提供了最新的研究成果? ...

C语言的编译器,可以使用VC.NET,BC++这些商业软件。也可以使用一些免费的软件。

DEV-C++

这个编译器很好,我读书时一直使用。功能不是很强大,但插件很多。

code::blocks

最近发现的,和DEV-CPP差不多,但功能比前者全面。

OpenWatcom

老牌的编译器,很多游戏都是它写的。

以上这些软件同样可以编译C++。

C学好后可以学C++,我学C用了可能两年多时间。

JAVA语言:

应该说JAVA是最有前途的语言,我建议你学这个,又好找工作。

Java程序设计基础

本书主要针对初学Java的读者,主要介绍了面向对象程序代码的基本概念:创建图形用户接口所要事的可视化对象:基于事件的编程等内容。本书的主要目标是:在合理的编程规则下以一种能够被初级程序员接受的方式介绍上述内容,以期提供给读者工具、技术以及创建并保持程序的 ...

Java编程思想(原书第3版)

从本书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书作者有多年的教学经验,对C、C++、Java语言都有独到、深入的理解。因此他非常了解如何教授Java语言这门课程,也非常明白语言教学中的难点及人们的困惑。作者以通俗易懂及小而直接?...

刚开始学,要选择合适的工具,象NETBEANS,ECLIPSE这些东东都是专业级的,最好使用JCREATOR。这个软件小巧到功能强大。

JCREATOR

其次就是网页制作,这是每个程序员不得不做的事情。

如果你学的是VB。可以学ASP:

ASP程序设计

本书对ASP动态网站编程作了系统的介绍,全书分成四大部分。第一部分为环境配置与ASP编程基础,介绍ASP+SQL Server平台的配置,以及HTML、CSS和VBScript语言的使用。第二部分为ASP数据库程序设计,介绍了ASP操作Access和SQL Server数据库的三大基本格式,以及如何读?...

ASP.NET 2.0高级编程

ASP.NET 2.0技术内幕》的姐妹篇,侧重于延伸和拓宽ASP.NET 2.0的高级主题,进一步帮助读者掌握并深入ASP .NET 2.0的精髓,为将来成功地构建复杂精巧的、功能性更强的Web应用程序奠定基矗全书共三部分:ASP.NET内部机理、特有特性和ASP.NET控件。本书适合从事Web开发的程序员阅读,旨在帮助他们提升ASP.NET开发技能。 ...

ASP.NET 2.0 高级编程(第4版) ASP.NET 2.0 高级编程(第4版)

ASP.NET各种编程技能的同时重点介绍了ASP.NET 2 O版本中的巨大变化,详细阐述了ASP NET 2.0中所包含的每个新特性。书中提供了大量的实例,.可帮助读者快速掌握如何在N ET Framework下构建功能强大的ASP.NET应用程序。本书适用于有一些 ASP NET基础知识的学习者以及;隹备迁移到ASP NET 2 0的编程老手。

Programming ASP.NET 中文版(第3版)

ASP.NET;HTML编程基础;比较ASP和ASP.NET;ASP.NET中的事件;比较HTML控件和ASP控件;基本的ASP控件 API;代码隐藏窗体;使用Visual Studio .NET集成开发环境;跟踪,调试和错误处理;ASP.NET中的验证控件;数据绑定技术基础;列表控件和DataGrid控件;ADO.NET指南;调用存储过程;更新数据库记录;Repeater和DataList? ...

要建立网站,你就不得不搭建服务器,IIS你肯定是用不上了,可以使用Apache的服务器,它提供ASP的,JSP和PHP的服务器

相对来说都很小,可你要选择性的下载,安装的时候看看相关的文章。

然后就是数据库,

使用MYSQL吧,前期版本都很小。在网吧中主要就是练习。

学C的话,可以学PHP。

PHP程序设计与实例分析教程

本书为“全面突破网络编程技术丛书”之一。本书介绍的PHP语言是一种服务器端解释的脚本语言,它根据用户请求或服务器端的数据产生动态网页。全书系统地介绍了PHP在多种平台环境中的设计方法,重点讲解了其强大的内建访问数据库的能力,以及它如何能够作为Apache Web服务 ...

PHP高级编程

PHP的基本知识与高级特性,指导读者从入门到精通掌握PHP技术。内容包括PHP的变量、函数、语句、表达式,PHP对文件的处理,PHP的模块,如MySQL、XML、LDAP、GD,用PHP发送电子邮件,PHP的安全特性等。本书还介绍了五个范例应用程序,结合实际应用程序来讲述编写 PHP代码的特点。本书的附录还介绍了关于PHP的问题解答、技? ...

PHP与MySQL5程序设计(第2版)

PHP脚本语言和MySQL数据库这两种目前最流行的开源软件,主要内容包括PHP和MySQL基本概念、PHP扩展与应用库、日期和时间功能、 PHP数据对象扩展、PHP的mysqli扩展、MySQL 5的存储例程、触发器和视图等。本书实用性强,帮助读者学习PHP编程语言和MySQL数据库服务器的最佳实践,了解如何结合这些卓越的技术创建数据库驱动的 ...

服务器和上面一样。

学JAVA,就学JSP。

JSP程序设计教程

本书以JSP为开发工具,以java为开发语言,用通俗、简明的语言由浅入深出地讲解了JSP程序设计的开发方法,同时辅以大量的实例,书中所有实例程序代码均在开发环境中调试通过。同时,每一章后面都附有相应的练习题帮助读者对本章所学知识进一步理解和掌握。本书内容 ...

JSP程序设计

JSP(JavaServer Pages)是目前热门的跨平台动态Web应用开发技术。本书由经验丰富的开发人员撰写,是一本通俗易懂的JSP入门书籍。书中主要介绍JSP基础知识、 JSP和表达式语言(EL)、JSP标记库和JSTL、JSP指令、JSP和JavaBean、错误处理、JSP和servlet、访问数据库以 ...

现在在J2EE方面,已经流行框架了,就我自己使用来看,框架的确能大大的减少工作量。

实战Struts

Struts解决了许多Web应用程序开发中的常见问题。基于Struts应用程序框架构造的应用程序,除了可以复用业已证明可用的解决方案外,同时也可以使得开发人员更加关注应用程序的特性。Struts是由Apache软件基金会支持的开源软件。本书完整介绍了Struts框架结构,涵盖了设计、数据校验、数据库访问、动态页面生成、本地化、Str ...

WebWork in Action中文版

本书是一本从头至尾都使用现实世界例子讲述有关编写Web应用程序的书籍。WebWork所强调的内容是:利用框架实现你的项目,而不是被框架所阻碍。在本书中,我们将从简单的表单及表单处理开始,逐一讲述编写Web应用程序的基础知识:action、interceptor和result,以及控制反转(IoC)模式、对象图导航语言(OGNL)和所有来自Web ...

JSF实战

JSF是Sun公司J2EE标准指定的Web应用框架,得到了众多厂商的支持。本书是JSF方面的名著,共分五个部分。第一部分是JSF基础知识;第二部分是构建UI;第三部分研究将原型转化为实际应用所需的应用代码;第四部分从组件开发的角度来研究JSF;第五部分基于第四部分所讲述的知识给出了大量示例。本书作者是JSF界的权威,在书中提? ...

Spring in Action 中文版

本书分为三大部分和两个附录,每一部分专注于Spring框架的一个领域:核心层、中间层和Web层。第一部分展示了Spring框架的两个核心概念:反向控制(Inverstion of Control,IoC)和面向切面编程(Aspect-Oriented Programming,AOP),以便读者理解Spring的基础原理,这些基础原理在本书各个章节都会用到。第二部分在第1章介 ...

Hibernate实战(第2版·英文版)

本书全面讲述了Hibernate和Java Persistence,并对两者进行了详细的对比分析。书中通过一个应用将数百个例子融合起来,不仅深入剖析了Hibernate 3.2和Java Persistence 丰富的编程模型,还深刻阐述了数据库设计、对象/关系映射(ORM)和优化等方面的基本原则、策略和最佳实践。书中处处闪烁着作者超凡的真知灼见,将大大 ? ...

掌握AJAX也是很必要的。

基于J2EE的Ajax宝典(含光盘1张)

本书主要介绍Ajax开发中的环境与框架特点,着重介绍了Ajax的难点和重点。对于开发Ajax的常用工具也进行了详细讲解。全书分3个部分,内容涵盖 Ajax基本概念、Ajax和新技术和Ajax核心应用。书中通过Ajax与Struts及Ajax与Web Services的配合通过实际案例介绍Ajax的高级应用。本书适合Java程序员;企业级项目的开发人员参考使用 ...

Ajax与PHPWeb开发

本书指导读者使用Ajax、PHP及其他相关技术建立快速响应的网页。本书不仅从Ajax的客户端和服务器端技术两个方面指导读者逐步掌握 Ajax基础应用,还通过实例详细演示了Ajax表单验证、Ajax聊天室、Ajax Suggest、使用SVG实现的Ajax实时绘图程序、Ajax Grid、Ajax RSS阅读器和Ajax拖放等的实现过程。同时还介绍了在Windows和UNIX ...

征服ASP.NET 2.0 Ajax——Web开发技术详解

本书介绍了最新的ASP.NET Ajax技术。全书共分为8篇,包括Ajax的基本知识、CSS样式表、JavaScript、XMLHTTP请求和DOM对象、Ajax组件、 ASP.NET Ajax类库等内容。其中重点介绍的是ASP.NET 2.0 Ajax框架的各种使用方法,由浅入深地讲解了Ajax在实际项目中的应用。其中涉及了上百个Ajax的典型应用,具有很高的参考价值。 ? ...

Ajax实战

服务器和上一样。

最后就是编程利器了,在JAVA方面,除了上面介绍的之外,还有

NETBEANS

eclipse

值得注意的是,ECLIPSE非常好用,集成了上述的很多框架,非常方便。

最后是学习的方向,写什么,我的写法是游戏,我写过很多的小游戏,这样程序就越写越好了。

最后是相关网站:

参考资料:

php+myql数据库触发器怎么写

如果公司里有上百个表要做触发器,如果手动写代码的话。很累,一个小程序,自动生成mysql的触发代码。

?php

$dbname = 'test';//数据库

$tab1 = 'user'; //执行的表

$tab2 = 'user_bak'; //被触发的表

$conn = mysql_connect("localhost","root", "root",$dbname) or

die("请检查你的主机名数据库用户名和密码");

mysql_select_db($dbname, $conn) or die("数据库还没有连接");

$query = mysql_query("SHOW COLUMNS FROM $tab1");mysql_query("");

while($row=mysql_fetch_array($query,MYSQL_NUM)){//得到表的字段数组

$temp[] = $row[0];

$str1 .= '`'.$row[0].'`,';

$str2 .= 'new.'.$row[0].',';

$str3 .= $row[0].'=new.'.$row[0].',';

}

//insert触发器

$inser_str = "h1{$tab1}表的insert触发器/h1";

$inser_str .= "create trigger ".$tab1."_insert brAFTER INSERT

bron ".$tab1."br";

$inser_str .="for each rowbr INSERT INTO {$tab2}

(".rtrim($str1,',').') VALUES ('.rtrim($str2,',').');';

//update触发器

$update_str = "h1{$tab1}表的update触发器/h1";

$update_str .= "create trigger ".$tab1."_updatebr";

$update_str .= "after updatebr";

$update_str .= "on ".$tab1.'br';

$update_str .= "for each rowbr";

$update_str .= "update ".$tab2." set ".rtrim($str3,',')." where id =

new.id;//这里的where id = new.id要手动改一下。改成主键的字段名";

//delete触发器

$delete_str = "h1{$tab1}表的delete触发器/h1";

$delete_str .= "create trigger ".$tab1."_deletebr";

$delete_str .= "after deletebr";

$delete_str .= "on ".$tab1."br";

$delete_str .= "for each row br";

$delete_str .= "delete from ".$tab2." where id=OLD.id//这里的where id =

new.id要手动改一下。改成主键的字段名br";

echo $inser_str;

echo $update_str;

echo $delete_str;

echo

'p注意:br1.触发器可用于InnoDB或MyISAM类型的表br2.插入的时候用AFTER INSERT

更好的保证数据ID的对应,如果用before

INSERT有可能造成ID不对应br3.如new.id则是表示主表中的字段br4.sql语句太多,用

begin..endbr5.使用show triggers语句查看数据库中的触发器。br6.删除触发器DROP TRIGGER

IF EXISTS `test`br7.作者:a

href=""华夏之星/a';

echo EOT

h3语法:/h3

create trigger 触发器名称br

{ before | after}br

{insert | update | delete}br

on 表名br

for each rowbr

触发器SQL语句br

参数详解如下:br

create trigger 触发器名称:创建一个新触发器,并指定触发器的名称。br

{ before | after}:用于指定在insert、update或delete语句执行前触发还是在语句执行后触发。br

on 表名:用于指定响应该触发器的表名。br

for each row:触发器的执行间隔,for each row

通知触发器每隔一行执行一次动作,而不是对整个表执行一次。br

触发器SQL语句:触发器要执行的SQL语句,如果该触发器要执行多条SQL语句,要将多条语句放在begin…end块中。

br如:begin…end块(它不能上phpadmin上运行。因为phpmyadmin没有对begin...end解析。)br

mysql_query("br

create trigger user_deletebr

after deletebr

on userbr

for each row BEGINbr

delete from user_bak where id=OLD.id;br

delete from aaa where id=OLD.id;br

END;");br

brbrbrbr

EOT;

?

学习PHP,环境为PHP5.2 和sqlserver 链接数据库正常,其中在查收某段代码时,和查询分析器里的结果不同

同步两个SQLServer数据库如何同步两个sqlserver数据库的内容?程序代码可以有版本管理cvs进行同步管理,可是数据库同步就非常麻烦,只能自己改了一个后再去改另一个,如果忘记了更改另一个经常造成两个数据库的结构或内容上不一致.各位有什么好的方法吗?一、分发与复制用强制订阅实现数据库同步操作.大量和批量的数据可以用数据库的同步机制处理://说明:为方便操作,所有操作均在发布服务器(分发服务器)上操作,并使用推模式在客户机器使用强制订阅方式。二、测试通过1:环境服务器环境:机器名称:zehuadb操作系统:windows2000server数据库版本:sql2000server个人版客户端机器名称:zlp操作系统:windows2000server数据库版本:sql2000server个人版2:建用户帐号在服务器端建立域用户帐号我的电脑管理-本地用户和组-用户-建立username:zlpuserpwd:zlp3:重新启动服务器mssqlserver我的电脑-控制面版-管理工具-服务-mssqlserver服务(更改为:域用户帐号,我们新建的zlp用户.\zlp,密码:zlp)4:安装分发服务器a:配置分发服务器工具-复制-配置发布、订阅服务器和分发-下一步-下一步(所有的均采用默认配置)b:配置发布服务器工具-复制-创建和管理发布-选择要发布的数据库(sz)-下一步-快照发布-下一步-选择要发布的内容-下一步-下一步-下一步-完成c:强制配置订阅服务器(推模式,拉模式与此雷同)工具-复制-配置发布、订阅服务器和分发-订阅服务器-新建-sqlserver数据库-输入客户端服务器名称(zlp)-使用sqlserver身份验证(sa,空密码)-确定-应用-确定d:初始化订阅复制监视器-发布服务器(zehuadb)-双击订阅-强制新建-下一步-选择启用的订阅服务器-zlp-下一步-下一步-下一步-下一步-完成5:测试配置是否成功复制监视器-发布衿?zehuadb)-双击sz:sz-点状态-点立即运行代理程序查看:复制监视器-发布服务器(zehuadb)-sz:sz-选择zlp:sz(类型强制)-鼠标右键-启动同步处理如果没有错误标志(红色叉),恭喜您配置成功6:测试数据在服务器执行:选择一个表,执行如下sql:insertintowq_newsgroup_sselect'测试成功',5复制监视器-发布服务器(zehuadb)-sz:sz-快照-启动代理程序-zlp:sz(强制)-启动同步处理去查看同步的wq_newsgroup_s是否插入了一条新的记录测试完毕,通过。7:修改数据库的同步时间,一般选择夜晚执行数据库同步处理(具体操作略):d/*注意说明:服务器一端不能以(local)进行数据的发布与分发,需要先删除注册,然后新建注册本地计算机名称卸载方式:工具-复制-禁止发布-是在"zehuadb"上静止发布,卸载所有的数据库同步配置服务器注意:发布服务器、分发服务器中的sqlserveragent服务必须启动采用推模式:"d:\microsoftsqlserver\mssql\repldata\unc"目录文件可以不设置共享拉模式:则需要共享~!*/少量数据库同步可以采用触发器实现,同步单表即可。三、配置过程中可能出现的问题在sqlserver2000里设置和使用数据库复制之前,应先检查相关的几台sqlserver服务器下面几点是否满足:1、mssqlserver和sqlserveragent服务是否是以域用户身份启动并运行的(.\administrator用户也是可以的)如果登录用的是本地系统帐户local,将不具备网络功能,会产生以下错误:进程未能连接到distributor'@servername'(如果您的服务器已经用了sqlserver全文检索服务,请不要修改mssqlserver和sqlserveragent服务的local启动。会照成全文检索服务不能用。请换另外一台机器来做sqlserver2000里复制中的分发服务器。)修改服务启动的登录用户,需要重新启动mssqlserver和sqlserveragent服务才能生效。2、检查相关的几台sqlserver服务器是否改过名称(需要srvid=0的本地机器上srvname和datasource一样)在查询分析器里执行:usemasterselectsrvid,srvname,datasourcefromsysservers如果没有srvid=0或者srvid=0(也就是本机器)但srvname和datasource不一样,需要按如下方法修改:usemastergo--设置两个变量declare@serverproperty_servernamevarchar(100),@servernamevarchar(100)--取得windowsnt服务器和与指定的sqlserver实例关联的实例信息select@serverproperty_servername=convert(varchar(100),serverproperty('servername'))--返回运行microsoftsqlserver的本地服务器名称select@servername=convert(varchar(100),@@servername)--显示获取的这两个参数select@serverproperty_servername,@servername--如果@serverproperty_servername和@servername不同(因为你改过计算机名字),再运行下面的--删除错误的服务器名execsp_dropserver@server=@servername--添加正确的服务器名execsp_addserver@server=@serverproperty_servername,@local='local'修改这项参数,需要重新启动mssqlserver和sqlserveragent服务才能生效。这样一来就不会在创建复制的过程中出现18482、18483错误了。3、检查sqlserver企业管理器里面相关的几台sqlserver注册名是否和上面第二点里介绍的srvname一样不能用ip地址的注册名。(我们可以删掉ip地址的注册,新建以sqlserver管理员级别的用户注册的服务器名)这样一来就不会在创建复制的过程中出现14010、20084、18456、18482、18483错误了。4、检查相关的几台sqlserver服务器网络是否能够正常访问如果ping主机ip地址可以,但ping主机名不通的时候,需要在winnt\system32\drivers\etc\hosts(win2000)windows\system32\drivers\etc\hosts(win2003)文件里写入数据库服务器ip地址和主机名的对应关系。例如:127.0.0.1localhost192.168.0.35oracledboracledb192.168.0.65fengyu02fengyu02202.84.10.193bj_dbbj_db或者在sqlserver客户端网络实用工具里建立别名,例如:5、系统需要的扩展存储过程是否存在(如果不存在,需要恢复):sp_addextendedproc'xp_regenumvalues',@dllname='xpstar.dll'gosp_addextendedproc'xp_regdeletevalue',@dllname='xpstar.dll'gosp_addextendedproc'xp_regdeletekey',@dllname='xpstar.dll'gosp_addextendedprocxp_cmdshell,@dllname='xplog70.dll'接下来就可以用sqlserver企业管理器里[复制]-右键选择-[配置发布、订阅服务器和分发]的图形界面来配置数据库复制了。下面是按顺序列出配置复制的步骤:1、建立发布和分发服务器[欢迎使用配置发布和分发向导]-[选择分发服务器]-[使"@servername"成为它自己的分发服务器,sqlserver将创建分发数据库和日志]-[制定快照文件夹]-[自定义配置]-[否,使用下列的默认配置]-[完成]上述步骤完成后,会在当前"@servername"sqlserver数据库里建立了一个distribion库和一个distributor_admin管理员级别的用户(我们可以任意修改密码)。服务器上新增加了四个作业:[代理程序历史记录清除:distribution][分发清除:distribution][复制代理程序检查][重新初始化存在数据验证失败的订阅]sqlserver企业管理器里多了一个复制监视器,当前的这台机器就可以发布、分发、订阅了。我们再次在sqlserver企业管理器里[复制]-右键选择-[配置发布、订阅服务器和分发]我们可以在[发布服务器和分发服务器的属性]窗口-[发布服务器]-[新增]-[确定]-[发布数据库]-[事务]/[合并]-[确定]-[订阅服务器]-[新增]-[确定]把网络上的其它sqlserver服务器添加成为发布或者订阅服务器.新增一台发布服务器的选项:我这里新建立的jin001发布服务器是用管理员级别的数据库用户test连接的,到发布服务器的管理链接要输入密码的可选框,默认的是选中的,在新建的jin001发布服务器上建立和分发服务器fengyu/fengyu的链接的时需要输入distributor_admin用户的密码。到发布服务器的管理链接要输入密码的可选框,也可以不选,也就是不需要密码来建立发布到分发服务器的链接(这当然欠缺安全,在测试环境下可以使用)。2、新建立的网络上另一台发布服务器(例如jin001)选择分发服务器[欢迎使用配置发布和分发向导]-[选择分发服务器]-使用下列服务器(选定的服务器必须已配置为分发服务器)-[选定服务器](例如fengyu/fengyu)-[下一步]-[输入分发服务器(例如fengyu/fengyu)的distributor_admin用户的密码两次]-[下一步]-[自定义配置]-[否,使用下列的默认配置]-[下一步]-[完成]-[确定]建立一个数据库复制发布的过程:[复制]-[发布内容]-右键选择-[新建发布]-[下一步]-[选择发布数据库]-[选中一个待发布的数据库]-[下一步]-[选择发布类型]-[事务发布]/[合并发布]-[下一步]-[指定订阅服务器的类型]-[运行sqlserver2000的服务器]-[下一步]-[指定项目]-[在事务发布中只可以发布带主键的表]-[选中一个有主键的待发布的表]-[在合并发布中会给表增加唯一性索引和rowguidcol属性的唯一标识符字段[rowguid],默认值是newid()](添加新列将:导致不带列列表的insert语句失败,增加表的大小,增加生成第一个快照所要求的时间)-[选中一个待发布的表]-[下一步]-[选择发布名称和描述]--[下一步]-[自定义发布的属性]-[否,根据指定方式创建发布]-[下一步]-[完成]-[关闭]发布属性里有很多有用的选项:设定订阅到期(例如24小时)设定发布表的项目属性:常规窗口可以指定发布目的表的名称,可以跟原来的表名称不一样。下图是命令和快照窗口的栏目(sqlserver数据库复制技术实际上是用insert,update,delete操作在订阅服务器上重做发布服务器上的事务操作看文档资料需要把发布数据库设成完全恢复模式,事务才不会丢失但我自己在测试中发现发布数据库是简单恢复模式下,每10秒生成一些大事务,10分钟后再收缩数据库日志,这期间发布和订阅服务器上的作业都暂停,暂停恢复后并没有丢失任何事务更改)发布表可以做数据筛选,例如只选择表里面的部分列:例如只选择表里某些符合条件的记录,我们可以手工编写筛选的sql语句:发布表的订阅选项,并可以建立强制订阅:成功建立了发布以后,发布服务器上新增加了一个作业:[失效订阅清除]分发服务器上新增加了两个作业:[jin001-dack-dack-5]类型[repl快照][jin001-dack-3]类型[repl日志读取器]上面蓝色字的名称会根据发布服务器名,发布名及第几次发布而使用不同的编号repl快照作业是sqlserver复制的前提条件,它会先把发布的表结构,数据,索引,约束等生成到发布服务器的os目录下文件(当有订阅的时候才会生成,当订阅请求初始化或者按照某个时间表调度生成)repl日志读取器在事务复制的时候是一直处于运行状态。(在合并复制的时候可以根据调度的时间表来运行)建立一个数据库复制订阅的过程:[复制]-[订阅]-右键选择-[新建请求订阅]-[下一步]-[查找发布]-[查看已注册服务器所做的发布]-[下一步]-[选择发布]-[选中已经建立发布服务器上的数据库发布名]-[下一步]-[指定同步代理程序登录]-[当代理程序连接到代理服务器时:使用sqlserver身份验证](输入发布服务器上distributor_admin用户名和密码)-[下一步]-[选择目的数据库]-[选择在其中创建订阅的数据库名]/[也可以新建一个库名]-[下一步]-[允许匿名订阅]-[是,生成匿名订阅]-[下一步]-[初始化订阅]-[是,初始化架构和数据]-[下一步]-[快照传送]-[使用该发布的默认快照文件夹中的快照文件](订阅服务器要能访问发布服务器的repldata文件夹,如果有问题,可以手工设置网络共享及共享权限)-[下一步]-[快照传送]-[使用该发布的默认快照文件夹中的快照文件]-[下一步]-[设置分发代理程序调度]-[使用下列调度]-[更改]-[例如每五分钟调度一次]-[下一步]-[启动要求的服务]-[该订阅要求在发布服务器上运行sqlserveragent服务]-[下一步]-[完成]-[确定]成功建立了订阅后,订阅服务器上新增加了一个类别是[repl-分发]作业(合并复制的时候类别是[repl-合并])它会按照我们给的时间调度表运行数据库同步复制的作业。3、sqlserver复制配置好后,可能出现异常情况的实验日志:1.发布服务器断网,sqlserver服务关闭,重启动,关机的时候,对已经设置好的复制没有多大影响中断期间,分发和订阅都接收到没有复制的事务信息2.分发服务器断网,sqlserver服务关闭,重启动,关机的时候,对已经设置好的复制有一些影响中断期间,发布服务器的事务排队堆积起来(如果设置了较长时间才删除过期订阅的选项,繁忙发布数据库的事务日志可能会较快速膨胀),订阅服务器会因为访问不到发布服务器,反复重试我们可以设置重试次数和重试的时间间隔(最大的重试次数是9999,如果每分钟重试一次,可以支持约6.9天不出错)分发服务器sqlserver服务启动,网络接通以后,发布服务器上的堆积作业将按时间顺序作用到订阅机器上:会需要一个比较长的时间(实际上是生成所有事务的insert,update,delete语句,在订阅服务器上去执行)我们在普通的pc机上实验的58个事务100228个命令执行花了7分28秒.3.订阅服务器断网,sqlserver服务关闭,重启动,关机的时候,对已经设置好的复制影响比较大,可能需要重新初试化我们实验环境(订阅服务器)从18:46分意外停机以,第二天8:40分重启动后,已经设好的复制在8:40分以后又开始正常运行了,发布服务器上的堆积作业将按时间顺序作用到订阅机器上,但复制管理器里出现快照的错误提示,快照可能需要重新初试化,复制可能需要重新启动.(我们实验环境的机器并没有进行快照初试化,复制仍然是成功运行的)4、删除已经建好的发布和定阅可以直接用delete删除按钮我们最好总是按先删定阅,再删发布,最后禁用发布的顺序来操作。如果要彻底删去sqlserver上面的复制设置,可以这样操作:[复制]-右键选择[禁用发布]-[欢迎使用禁用发布和分发向导]-[下一步]-[禁用发布]-[要在"@servername"上禁用发布]-[下一步]-[完成禁用发布和分发向导]-[完成]我们也可以用t-sql命令来完成复制中发布及订阅的创建和删除,选中已经设好的发布和订阅,按属标右键可以[生成sql脚本]。(这里就不详细讲了,后面推荐的网站内有比较详细的内容)当你试图删除或者变更一个table时,出现以下错误server:msg3724,level16,state2,line1cannotdropthetable'object_name'becauseitisbeingusedforreplication.比较典型的情况是该table曾经用于复制,但是后来又删除了复制。处理法:select*fromsysobjectswherereplinfo'0'sp_configure'allowupdates',1goreconfigurewithoverridegobegintransactionupdatesysobjectssetreplinfo='0'wherereplinfo'0'committransactiongorollbacktransactiongosp_configure'allowupdates',0goreconfigurewithoverridego

后缀“.php”是什么

PHP文件的扩展名

PHP 是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP 建立一个真正交互的WEB 站点。本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列。我假定你有一些HTML(或者HTML编辑器)的基本知识和一些编程思想。

简介

PHP 是能让你生成动态网页的工具之一。PHP 代表:超文本预处理器(PHP:Hypertext Preprocessor)。PHP 是完全免费的,不用花钱,你可以从PHP 官方站点()自由下载。PHP 遵守GNU 公共许可(GPL),在这一许可下诞生了许多流行的软件诸如Linux和Emacs。你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。PHP 在大多数Unix 平台,GUN/Linux和微软Windows平台上均可以运行。怎样在Windows环境的PC 机器或Unix机器上安装PHP 的资料可以在PHP 官方站点上找到,也可以查阅网页陶吧的“PHP 安装全攻备”专题文章。安装过程很简单。

如果你的机器解决了2000问题,那么PHP 也一样没有千年虫问题!

历史

三年前,Rasmus Lerdorf为了创建他的在线简历而创造了"个人主页工具"(Personal Home Page Tools)。这是一种非常简单的语言。其后越来越多的人们注意到了这种语言并对其扩展提出了各种建议。在许多人的无私奉献下以及这种语言本身的源代码自由性质,它演变成为一种特点丰富的语言,而且现在还在成长中。

PHP 虽然很容易学习,但是速度上比mod_perl(植入web服务器的perl模块)慢。现在有了可以与mod_perl 速度想媲美的被称作Zend 的新引擎,而PHP4 就可以充分利用这个引擎。现在,PHP4 正式版已经发布,大家可以到php 的官方站点上去下载。Andy Gutmans 和Zeev Suraki 是Zend 的主要作者。可以去Zend 站点()了解更多。

PHP 的应用在个人性质的web工程中增长显著。根据Netcraft在1999 年10月的报告,有931122个域和321128 个IP 地址利用PHP 技术。

PHP 的先进之处

应用PHP 有许多好处。当然已知的不利之处在于PHP 由于是开放源码项目,没有什么商业支持,并且由此而带来的执行速度缓慢(直到PHP4 之前)。但是PHP 的邮件列表很是有用而且除非你正在运行像Yahoo!或者Amazon.com 这样的极受欢迎的站点,你不会感觉出PHP 的速度与其他的有什么不同。最起码我就没有感觉出来!好了,让我们来看看PHP 有那些优点:

学习过程

我个人更喜欢PHP 的非常简单的学习过程。与Java和Perl 不同,你不必把头埋进100 多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP 编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。

PHP 的语法类似于C,Perl,ASP 或者JSP。对于那些对上述之一的语言较熟悉的人来说,PHP 太简单了。相反的,如果你对PHP 了解较多,那么你对于其他几种语言的学习都很简单了。

你只需要30分钟就可以将PHP 的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB 站点。由于PHP 代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入PHP 使得你的站点更加具有动态特性。

数据库连接

PHP 可以编译成具有与许多数据库相连接的函数。PHP 与MySQL是现在绝佳的组合。你还可以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。

可扩展性

就像前面说的那样,PHP 已经进入了一个高速发展的时期。对于一个非程序员来说为PHP 扩展附加功能可能会比较难,但是对于一个PHP 程序员来说并不困难。

面向对象编程

PHP 提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。

可伸缩性

传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP 就可以以这种方式安装,虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP 可以具有更高的可伸缩性。

更多特点

PHP 的开发者们为了更适合web编程,开发了许多外围的流行基库,这些库包含了更易用的层。你可以利用PHP 连接包括Oracle,MS-Access,Mysql在内的大部分数据库。你可以在苍蝇上画图,编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的PHP 安装版本需要哪些功能。引用Nissan 的Xterra 的话来说就是PHP 可以做到你想让它做到的一切而且无所不能!

MySQL简介

MySQL是一个广受Linux社区人们喜爱的半商业的数据库。 MySQL是可运行在大多数的Linux平台(i386,Sparc,etc),以及少许非Linux甚至非Unix平台。

许可费用

MySQL的普及很大程度上源于它的宽松,除了略显不寻常的许可费用。MySQL的价格随平台和安装方式变化。MySQL的Windows版本(NT和9X)在任何情况下都不免费,而任何Unix变种(包括Linux)的MySQL如果由用户自己或系统管理员而不是第三方安装则是免费的,第三方案庄则必须付许可费。

价格

平台安装方式价格

Windows NT,9X 任何200美元

Unix或Linux 自行安装免费

Unix或Linux 第三方安装200美元

需要一个应用组件200美元

可以得到多种支持合同,内容太多不再罗列,最新报价可咨询MySQL站点。

3、安装

可以在MySQL站点上获得大多数主要的软件包格式(RPM、DBE、TGZ),客户端库和各种语言“包装”(Wrapper)可以分开的RPM格式获得。RPM格式的安装没有多大麻烦,并且无需初始配置。在rc3.d(以RedHat RPM为例)生成一个初始脚本,故MySQL守护进程在多用户模式下重启时被启动运行。MySQL的守护进程(mysqld)消耗很少的内存(在运行RedHat 5.1的奔腾133上,每个守护进程使用500K内存和另外4M共享内存的开销)并在只有在执行真正的查询时才装载到处理器上,这意味着对小型数据库来说,MySQL可以相当轻松地使用而不会对其他系统功能有太大的影响。

数据类型

字段支持大量数据类型是件好事。通常的整数、浮点数、字符串和数字均以多种长度表示,并支持变长的BLOB(Binary Large OBject)类型。对整数字段由自动增量选项,日期时间字段也能很好的表示。

MySQL与大多数其他数据库系统不同的是提供两个相对不常用的字段类型:ENUM和SET。ENUM是一个枚举类型,非常类适于Pascal语言的枚举类型,它允许程序员看到类似于'red、'green'、'blue'的字段值,而MySQL只将这些值存储为一个字节。SET也是从Pascal借用的,它也是一个枚举类型,但一个单独字段一次可存储多个值,这种存储多个枚举值的能力也许不会给你一些印象(并可能威胁第三范式定义),但正确使用SET和CONTAINS关键字可以省去很多表连接,能获得很好的性能提高。

5、SQL兼容性

MySQL包含一些与SQL标准不同的转变,他们的大多数被设计成是对SQL语言脚本语言的不足的一种补偿。然而,另一些扩展确实使 MySQL与众不同,例如,LINK子句搜索是自动地忽略大小写的。MySQL 也允许用户自定义的SQL函数,换句话说,一个程序员可以编写一个函数然后集成到MySQL中,并且其表现的与任何基本函数如SUM()或AVG ()没有什么不同。函数必须被编译道一个共享库文件中(.so文件),然后用一个LOAD FUNCTION命令装载。

它也缺乏一些常用的SQL功能,没有子选择(在查询中的查询)。视图(View)也没了。当然大多数子查询可以用简单的连接(join)子句重写,但有时用两个嵌套的查询思考问题比一个大连接容易。同样,视图仅仅为程序员隐蔽where子句,但这正是程序员们期望的另一种便利。

存储过程和触发器

MySQL没有一种存储过程(Stored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制。多语句SQL命令必须通过客户方代码来协调,这种情形是借助于相当健全的查询语言和赋予客户端锁定和解锁表的能力,这样才允许的多语句运行。

7、参考完整性(Referential Integrity-RI)

MySQL的主要的缺陷之一是缺乏标准的RI机制;然而,MySQL的创造者也不是对其用户的愿望置若罔闻,并且提供了一些解决办法。其中之一是支持唯一索引。Rule限制的缺乏(在给钉字段域上的一种固定的范围限制)通过大量的数据类型来补偿。不简单地提供检查约束(一个字段相对于同一行的另一个字段的之值的限制)、外部关键字和经常与RI相关的“级联删除”功能。有趣的是,当不支持这些功能时,SQL分析器容忍这些语句的句法。这样做目的是易于移植数据库到MySQL中。这是一个很好的尝试,并且它确实未来支持该功能留下方便之门;然而,那些没有仔细阅读文档的的人可能误以为这些功能实际上是存在的。

7、安全性

自始至终我对MySQL最大的抱怨是其安全系统,它唯一的缺点是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变。通常的SQL GRANT/REVOKE 语句到最近的版本才被支持,但是至少他们现在有了。 MySQL的编写者广泛地记载了其特定的安全性系统,但是它确实需要一条可能是别无它法的学习过程。

apache+php+mysql是最好的搭配,也是搭配企业网络的最好的搭配、

如果学php,那么你可以在网络中找寻到很多的教程的,其实学任何的程序最好的就是写,不停的写不停的看。

作网站当然最好的是dreamweaver,它可以写很多的代码的,也可以设计!


文章名称:php数据库触发器 数据库如何触发触发器
文章位置:http://cdiso.cn/article/hpjpsg.html

其他资讯