当前位置: 首页 > 图文教程 > 网络编程 > PHP > 用PHP调用数据库的存贮过程

PHP
php面向对象全攻略 (十五) 多态的应用
php面向对象全攻略 (十六) 对象的串行化
php面向对象全攻略 (十七) 自动加载类
PHP parse_url 一个好用的函数
PHP 字符串分割和比较
全世界最小的php网页木马一枚 附PHP木马的防范方法
PHP 日期加减的类,很不错
PHP 日期时间函数的高级应用技巧
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
Ha0k 0.3 PHP 网页木马修改版
PHP iconv 函数转gb2312的bug解决方法
关于页面优化和伪静态
使用zend studio for eclipse不能激活代码提示功能的解决办法
PHP 身份验证方面的函数
基于OpenCV的PHP图像人脸识别技术
用mysql触发器自动更新memcache的实现代码
php 数学运算验证码实现代码
PHP网站开发方案实例
PHP教程:挖掘细节提升网站性能
搜索引擎技术核心揭密(PHP)

用PHP调用数据库的存贮过程


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 135 ::
收藏到网摘: n/a

昨天,看到一个战友问是否可以用php调用存贮过程,感觉应该是可以的,所以,马上进行了实验,非常的成功!非常出乎我的意料之外!因此,写出来,给大家参考!
大家知道,存储过程是在服务器端的一个脚本程序,执行起来速度很快,但它也有一个缺点,就是依赖与一个固定数据库,移植性不好!
我的上回文章,提到了用com组件是可以访问ado以及相关的组件,无论是自己建的还是系统带的,都可以扩展系统的功能,但现在php不支持dcom/com+,但相信它的下一个版本应该是支持的。
不说这么多了,我们马上试一下吧。

下面是我的一个简单的存贮过程
CREATEPROCEDURE[sp_mystoreprocedure]AS
selectcompanyname,contactname,cityfromcustomers

其实,还可以写比较复杂的,可惜我对此研究不深,只好取简单了!

下面是我的php文件
<?
define("OLEDB_CONNECTION_STRING",
"Provider=SQLOLEDB;DataSource=zzb;InitialCatalog=Northwind;UserID=sa;Password=");
$dbc=newCOM("ADODB.Connection");
$dbc->Open(OLEDB_CONNECTION_STRING);
$command="sp_mystoreprocedure";
$rs=$dbc->Execute($command);//Recordset
$i=0;

echo'<tablecellSpacing="1"cellPadding="3"width="600"align="center"bgColor="#000000"border="0">
<trvAlign="bottom"bgColor="#9999cc">
<th>Directive</th>
<th>LocalValue</th>
<th>MasterValue</th>
</tr>';

while(!$rs->EOF){
$i+=1;
$fld0=$rs->Fields(0);
$fld1=$rs->Fields(1);
$fld2=$rs->Fields(2);
print'<trvAlign="baseline"bgColor="#cccccc">
<tdbgColor="#ccccff"><b>';
print$fld0->value;
print'</b><br></td>
<tdalign="middle">';
print$fld1->value;
print'</td><tdalign="middle">';
print$fld2->value;
print'</td></tr>';

$rs->MoveNext();
}
print'</TABLE>';

$rs->Close();
?>

注意的是,你的服务器必须打开!另外,就是不能写错存贮过程的名称。否则会出项致命的错误,而且,你根本就不知道错误在那里,这就是php文件对错误处理的不好之处,但相信它以后是会改进的。

我学php需然有很长时间了,但发现要真正用好它,不那么容易,但它确实也超出了我的想象,有些东西真的很奇妙,真是,不用不知道,一用真奇妙!