大家都知道,存储过程是在SQL服务器上执行的一段脚本,可应用一些触发器自动触发SQL完成一系列数据库操作,以前在写ASP程序的时候,经常看到老大哥在玩存储过程,今天小弟也献丑了,演示如何在PHP中使用存储过程。
先看下我定义的存储过程,为了演示,这里不搞太复杂的存储过程:CREATE PROCEDURE [sp_mystoreprocedure] AS select companyname, contactname, city from customers
这是我写的PHP代码,用来调用上边的存储过程:<?php
define ("OLEDB_CONNECTION_STRING",
"Provider=SQLOLEDB; Data Source=zzb; Initial Catalog=Northwind; User ID=sa; Password=");
$dbc = new COM("ADODB.Connection");
$dbc->Open(OLEDB_CONNECTION_STRING);
$command = "sp_mystoreprocedure";
$rs = $dbc->Execute($command); // Recordset
$i = 0; echo '
Directive | Local Value | Master Value |
---|
$i += 1;
$fld0 = $rs->Fields(0);
$fld1 = $rs->Fields(1);
$fld2 = $rs->Fields(2);
print '
';print $fld0->value;
print '
';print $fld1->value;
print '
';print $fld2->value;
print '
'; $rs->MoveNext();}
print '
'; $rs->Close();?>
因PHP对异常处理不太好,所以这里要避免出错,一是你的SQL必须是运行的,二是存储过程名字一定不要写错,否则PHP的出错信息不足以让你快速判断错误原因,这也是PHP对出错处理的弱项吧。