欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

php中adodb中文手册,[转载]ADODB中文手册(4)

发布时间:2023/12/14 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 php中adodb中文手册,[转载]ADODB中文手册(4) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

ADODB

1.31版起,新增了两个资料集函数:GetUpdateSQL()及GetInsertSQL()。这允许你在执行了像"SELECT

* FROM table query WHERE..."这样的查询函数後,建立一个

$rs->fields复本,改变这些栏位,然後自动产生出更新或是新增的SQL指令。

以下我们展示如何运用这些函数,我们将存取一个资料表,带有下列栏位:(ID,FirstName,LastName,Created)。在这些函数被执行前,你需要藉由一个对资料表的查询指令(select)来初始化一个资料集。

#==============================================

# GetUpdateSQL() 及 GetInsertSQL() 范例码

#==============================================

include('ADOdb.inc.php');

include('tohtml.inc.php');

#==========================

# 以下的程式码测试新增状态

$sql = "SELECT * FROM ADOXYZ WHERE id =

-1";

# 从资料库中查询出一个空的资料集

$conn =

&ADONewConnection("mysql");

# 建立一个连结

$conn->debug=1;

$conn->PConnect("localhost",

"admin",

"",

"test"); # 连结到 MySQL, 资料库名称为

test

$rs = $conn->Execute($sql); #

执行查询,并取得一个空的资料集

$record = array(); # 初始化一个阵列,以便存放记录资料供新增用

# 设定记录中的栏位值

$record["firstname"] =

"Bob";

$record["lastname"] =

"Smith";

$record["created"] =

time();

# 传入空的资料集及栏位资料阵列到GetInsertSQL函数中,以执行功能

# 这个函数将会依传入的资料,回传一个全格式的 INSERT SQL指令

$insertSQL = $conn->GetInsertSQL($rs,

$record);

$conn->Execute($insertSQL); # 将记录挿入资料库中

#==========================

# 以下的程式码测试更新状态

$sql = "SELECT * FROM ADOXYZ WHERE id =

1";

# 选择一笔记录以便更新

$rs = $conn->Execute($sql); #

执行这个查询,并取得一个存在的记录来更新

$record = array(); # 初始化一个阵列,以存放要更新的资料

# 设定栏位里的值

$record["firstname"] =

"Caroline";

$record["lastname"] =

"Smith"; # 更新 Caroline的姓由 Miranda

变成 Smith

# 传入这个只有单一记录的资料集以及含有资料的阵列到 GetUpdateSQL函数里

# 函数将会回传一个具有正确 WHERE 条件的 UPDATE(更新) SQL 指令

$updateSQL = $conn->GetUpdateSQL($rs,

$record);

$conn->Execute($updateSQL); # 更新资料库中的记录

$conn->Close();

?>

范例 8: 使用上一笔及下一笔实作卷动我们使用HTTP取得 $next_page 变数,以追踪要跳去那一页并且储存目前页码在

session 变数 $curr_page 里。

我们呼叫连结物件的 PageExecute()函收去取得我们要的资料集,然後我们使用资料集的 AtFirstPage() 及

AtLastPage() 函数去决定是否显示下一页和上一页按钮。

include_once('ADOdb.inc.php');

include_once('tohtml.inc.php');

session_register('curr_page');

$db = NewADOConnection('mysql');

$db->Connect('localhost','root','','xphplens');

$num_of_rows_per_page = 10; $sql =

'select * from products';

if

(isset($HTTP_GET_VARS['next_page']))

$curr_page =

$HTTP_GET_VARS['next_page'];

if (empty($curr_page)) $curr_page = 1; ## at first

page $rs = $db->PageExecute($sql,

$num_of_rows_per_page, $curr_page); if (!$rs)

die('Query Failed'); if

(!$rs->EOF &&

(!$rs->AtFirstPage() ||

!$rs->AtLastPage())) { if

(!$rs->AtFirstPage()) {

?>

href="<?php echo

$PHPSELF,'?next_page=',$rs->AbsolutePage()

- 1 ?>">Previous

page

<?php } if

(!$rs->AtLastPage()) {

?>

href="<?php echo

$PHPSELF,'?next_page=',$rs->AbsolutePage()

+ 1 ?>">Next

page

<?php }

rs2html($rs); } ?>

以上的程式码可以在 testpaging.php 范例里找到www.cn403.com。零食团购网

使用自定错误处理及 PEAR_Error在之前的版本,你可以使用像 $con->debug=true

; 这样的设定来进行除错。但在 1.50 版後,我们提供了另一种方法来处理错误状态。我们让工程师可以使用 ADODB

的自订错误处理程序功能。

ADODB 提供了两种自订处理方式,你可以配合你的的需要而修订。第一个方法放在

ADOdb-errorhandler.inc.php 档案里。这让你可以使用标准的 PHP 函数 err_reporting

去控制要显示怎样的错误讯息及 trigger_error 去呼叫 PHP 预设的错误处理程序。

引入了上述档案後(ADOdb-errorhandler.inc.php),当发生了下列的错误後,将会使得

trigger_error($errorstring,E_USER_ERROR)被呼叫。

Connect() 或 PConnect() 执行失败时。

执行 SQL 指令的函数失败时,如 Execute() 或 SelectLimin() 。

GenID() 进入了无限回圈时。

这里的 $errorstring 变数是由 ADODB 所产生的。而且会包含了有用的除错讯息,类似於随後会建立的

error.log 资料。所以,为了要能正确提供除错讯息,你要在建立 ADOConnection 物件前,就把

ADOdb-errorhandler.inc.php 引入到程式码中。

If you define error_reporting(0), no errors will be shown. If you

set error_reporting(E_ALL), all errors will be displayed on the

screen.

如果你设定了 error_reporting(0) 的话,将不会有任何错误被显示。如果你设定了

error_reporting(E_ALL),那将会显示所有的错误讯息。

以下是一个简单的范例:

显示所有的错误讯息

include('ADOdb-errorhandler.inc.php');

include('ADOdb.inc.php');

include('tohtml.inc.php'); $c =

NewADOConnection('mysql');

$c->PConnect('localhost','root','','northwind');

$rs=$c->Execute('select * from

productsz'); #不正确的资料表 productsz');

if ($rs) $rs2html($rs); ?>

如果你要把错误讯息记录下来,你可以定义两个选择性常数 ADODB_ERROR_LOG_TYPE,

ADODB_ERROR_LOG_DEST。有关於 ADODB_ERROR_LOG_TYPE 的值,服装团购网你可以去叁考 PHP 使用手册中有关於 error_log

的说明。在以下的范例中,我使将它设为 3,意思是指将讯息记录到常数 ADODB_ERROR_LOG_DEST

所设定的档案中。

不显示任何的错误讯息

define('ADODB_ERROR_LOG_TYPE',3);

define('ADODB_ERROR_LOG_DEST','C:/errors.log');

include('ADOdb-errorhandler.inc.php');

include('ADOdb.inc.php');

include('tohtml.inc.php'); $c =

NewADOConnection('mysql');

$c->PConnect('localhost','root','','northwind');

$rs=$c->Execute('select * from

productsz'); ## 不正确的资料表 productsz if ($rs)

$rs2html($rs); ?>

以下则是写在 error.log 档的错误讯息:

(2001-10-28 14:20:38) mysql error: [1146: Table

'northwind.productsz'

doesn't exist] in EXECUTE("select

* from productsz")

第二种错误处理方法是 ADOdb-errorpear.inc.php

。使用这种方式,团购网站大全在错误发生时会产生 PEAR_Error 衍生物件,而最後产生的 PEAR_Error

物件可以被 ADODB_Pear_Errir() 函数取回。

include('ADOdb-errorpear.inc.php');

include('ADOdb.inc.php');

include('tohtml.inc.php'); $c =

NewADOConnection('mysql');

$c->PConnect('localhost','root','','northwind');

$rs=$c->Execute('select * from

productsz'); #不正确的资料表 productsz');

if ($rs) $rs2html($rs); else { $e =

ADODB_Pear_Error(); echo

'

',$e->message(),'

';

} ?>

在引入 ADOdb-errorpear.inc.php 档之前,藉由定义 ADODB_PEAR_ERROR_CLASS

常数,你可以使用一个 PEAR_Error 衍生类别。为了方便除错,你可以在 PHP 程式码的最前面定义预设的错误理方式为

PEAR_ERROR_DIE,这将会使得程式一出错,马上就输出错误讯息,并且停止执行。

include('PEAR.php');

PEAR::setErrorHandling('PEAR_ERROR_DIE');

注意,当错误产生时,ADODB并没有明确的回传一个 PEAR_Error 物件给你。你必需要去呼叫

ADODB_Pear_Error() 函数去取回最後的错误内容。或者,你可以使用 PEAR_ERROR_DIE 这个技巧。

总结

以上是生活随笔为你收集整理的php中adodb中文手册,[转载]ADODB中文手册(4)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。