存储过程和函数是MySql5.0中引入的。关于这方面的操作在PHP里面没有直接的支持。但是由于Mysql PHP API的设计,使得我们可以在以前的PHP版本中的mysql php api中支持存储过程和函数的调用。 在php中调用存储过程和函数。 1.调用存储过程的方法。 a. 如果存储过程有 IN/INOUT参数,声明一个变量,输入参数给存储过程,该变量是一对, 一个php变量(也可以不必,只是没有php变量时,没有办法进行动态输入),一个Mysql变量。 b.如果存储过程有OUT变量,声明一个Mysql变量。mysql变量的声明比较特殊,必须让mysql服务器知道此变量的存在,其实也就是执行一条mysql语句。 如 set @mysqlvar=$phpvar ; c.使用mysql_query()/mysql_db_query()执行mysql 变量声明语句。 mysql_query(“set @mysqlvar [=$pbpvar]“); 这样,在mysql服务器里面就有一个变量,@mysqlar。如果时IN参数,那么其值可以有phpar传入。 d. 如果是存储过程。 1. 执行 call procedure()语句。 也就是mysql_query(“call proceduer([var1]…)”); 2. 如果有返回值,执行select @ar,返回执行结果。 mysql_query(“select @var)” 接下来的操作就和php执行一般的mysql语句一样了。可以通过mydql_fetch_row()等函数获得结果。 如果时函数。 直接执行 select function() 就可以了。
Monthly Archives:: 五月 2010
Mysql存储过程学习笔记–变量、参数、注释
变量定义: DECLARE variable_name [,variable_name...] datatype [DEFAULT value]; 其中,datatype为mysql的数据类型,如:INT, FLOAT, DATE, VARCHAR(length) 例: DECLARE l_int INT unsigned default 4000000; DECLARE l_numeric NUMERIC(8,2) DEFAULT 9.95; DECLARE l_date DATE DEFAULT ’1999-12-31′; DECLARE l_datetime DATETIME DEFAULT ’1999-12-31 23:59:59′; DECLARE l_varchar VARCHAR(255) DEFAULT ‘This will not be padded’; 变量赋值 SET 变量名 = 表达式值 [,variable_name = expression ...] 参数 mysql存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT Create… Read more »
AMQP协议介绍
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。 AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。 AMQP在消息提供者和客户端的行为进行了强制规定,使得不同卖商之间真正实现了互操作能力。 JMS是早期消息中间件进行标准化的一个尝试,它仅仅是在API级进行了规范,离创建互操作能力还差很远。 与JMS不同,AMQP是一个Wire级的协议,它描述了在网络上传输的数据的格式,以字节为流。因此任何遵守此数据格式的工具,其创建和解释消息,都能与其他兼容工具进行互操作。 AMQP规范的版本: 0-8 是2006年6月发布 0-9 于2006年12月发布 0-9-1 于2008年11月发布 0-10 于2009年下半年发布 1.0 draft (文档还是草案) AMQP的实现有: 1)OpenAMQ AMQP的开源实现,用C语言编写,运行于Linux、AIX、Solaris、Windows、OpenVMS。 2)Apache Qpid Apache的开源项目,支持C++、Ruby、Java、JMS、Python和.NET。 3)Redhat Enterprise MRG 实现了AMQP的最新版本0-10,提供了丰富的特征集,比如完全管理、联合、Active-Active集群,有Web控制台,还有许多企业级特征,客户端支持C++、Ruby、Java、JMS、Python和.NET。 4)RabbitMQ 一个独立的开源实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。RabbitMQ发布在Ubuntu、FreeBSD平台。 5)AMQP Infrastructure Linux下,包括Broker、管理工具、Agent和客户端。 6)ØMQ 一个高性能的消息平台,在分布式消息网络可作为兼容AMQP的Broker节点,绑定了多种语言,包括Python、C、C++、Lisp、Ruby等。 7)Zyre 是一个Broker,实现了RestMS协议和AMQP协议,提供了RESTful HTTP访问网络AMQP的能力。
Google App Engine项目收集
http://right.appspot.com/ 类似eemap的玩意 http://code.google.com/p/cpedialog 很不错的Blog程序 www.topea.net 外汇智能交易信号实时发布 http://im.huhaitai.com 仿twitter的一个应用,单用户 http://www.bus-line.cn 一个gae做的公交网站,现有北京 上海 南京 广州 天津 重庆 成都 深圳 等城市的公交线路。 http://my-todo.appspot.com/ 是任务管理, 适用于在 Firefox 侧边栏载入. 另外一个重要的特性是支持 Google Gears, 可以在没有网络的情况下使用. http://images.kangye.org 分享网络图片,挖图网 http://www.themv.cn LAST+YOUTUBE的应用,平时可以上去听听音乐 http://web-proxy.appspot.com 华丽的web proxy http://xiudaima.appspot.com 在线的代码高亮工具,只需复制粘贴就可以把高亮代码加入到你的Blog、邮件、Word中 http://ttlicai.appspot.com 天天理财网 http://proxycgi.appspot.com proxy http://uuopenchat.appspot.com 用django和jquery做的聊天室 http://sms4twitter.appspot.com 可以用短信更新twitter的玩意 http://gae-django-cms.appspot.com 一个简洁的CMS http://trygroovy.appspot.com/ 一个Groovy Web Console,带有一个交互式的Groovy学习教程。教程的输入界面完全实现了一个命令行窗口。输入下面教程的脚本,如果输入正确,教程会自动进入下一章。 交互式教程的形式受TryRuby启发,是对它的模仿。 http://rss4py.appspot.com RSS聚合 http://tedtalksubtitledownload.appspot.com/ 下载TED字幕 http://t.yibin.us 利用twitter… Read more »
数据库管理系统基本组件及运行流程图
一图胜千言,图片出自《Database Management System 》一书,斯坦福大学可以查到这本书的PDF
Recent Comments