科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件使用PHP操作DB2 Express C的五种方法

使用PHP操作DB2 Express C的五种方法

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文介绍了PHP的五种操作DB2 Express C的方法。虽然它们都可以完成我们大多数的任务,但作者建议在工作中尽量使用最后一种PDO的方法来操作数据库。

作者:极地圣火 来源:IT168 2007年9月14日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

二、ADO方式

如果在Windows中连接数据库,ADO无疑是最常用的数据库接口。如果在一种语言中可以调用ADO API,就意味着这种语言几乎可以连接任何数据库。

在ADO中最常用的是OLE DB驱动,DB2也提供了如图2所示的OLE DB驱动。

图2

由于PHP可以调用COM组件,因此,可以通过PHP的COM类来建立一个ADO对象,并通过DB2的OLE DB来连接DB2 Express C。


$conn = @new COM("ADODB.Connection") or die("ADO 对象创建失败!");

$rs = @new COM("ADODB.RecordSet") or die("ADO 记录集创建失败!");

$conn->open("Provider=IBMDADB2.DB2;UserID=db2admin;Password=mypassword;

Data Source=test;Location=localhost;");

$rs = $conn->Execute("SELECT * FROM mytable ORDER BY salary DESC;");

$row=1;

echo "

";

while(!$rs->EOF)

...{

echo "";

for($col=0;$col<$rs->Fields->Count;$col++)

...{

echo "";

}

$row++;

echo "";

$rs->MoveNext();

}

echo "
";

echo $rs->Fields[$col]->Name.":".$rs->Fields[$col]->Value;

echo "
";

$rs->Close;

$conn->Close;

?>

以上代码将mytable中的数据按salary排序,并以表格形式输出到IE中。

虽然使用COM来建立ADO对象显得更直接,但如果这样用,PHP程序的跨平台特性就被破坏了。如果既想使用ADO,又想保持PHP的跨平台特性,可以使用一个开源的PHP库:ADODB。这个库可以从http://php.weblogs.com/adodb免费下载。

include("adodb.inc.php");

// 这里必须使用db2,通知ADODB要使用DB2的ADO连接字符串

$db = NewADOConnection('db2');

$db->Connect("localhost", "db2admin", "mypassword", "test"); // test为数据库名

$result = $db->Execute("SELECT * FROM mytable");

if ($result === false) die("failed");

while (!$result->EOF) ...{

for ($i=0, $max=$result->FieldCount(); $i < $max; $i++)

print $result->fields[$i].' ';

$result->MoveNext();

print "

n";

}

使用ADODB之前,必须使用include来引用 adodb.inc.php。

四、利用其他语言操作DB2 Express C数据库

这种方法听起来就很奇妙。而PHP就是这个奇妙世界的中心。在PHP中可以象在Java或.net中一样调用各自的类似。

在PHP中可以通过Java类直接调用java中的任何class类。下面是一个PHP调用Java类的例子。


$stack = new Java('java.util.Stack'); // 可以将java.util.Stack换成任何的java类

$stack->push(1);

$result = $stack->pop();

$ex = java_last_exception_get();

if (!$ex) ...{

echo "$result\n";

}

$result = @$stack->pop();

$ex = java_last_exception_get();

if ($ex) ...{

echo $ex->toString();

}

java_last_exception_clear();

?>

可以根据PHP的这个功能通过Java的JDBC来操作DB2数据库。这样做有一个好处,就是JDBC无需其他的库就可以访问数据库,因此,就不需要DB2的ODBC或OLE DB驱动了。关于JDBC如何连接数据库请参与相关的文档,本文不再详述。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章