百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> MySql数据库AdoDB函数实例详解(1/3)
分享文章到:

MySql数据库AdoDB函数实例详解(1/3)

发布时间:01/15 来源: 浏览: 关键词:
本文章来给各位同学介绍MySql数据库AdoDB函数实例详解,这里除了像php直接连接mysql外,我们还可以使用adodb来操作数据库哦。

1.GetAll方法我们可以使用GetAll方法代替Execute()方法,该方法返回的结果为一个二维关联数据,这样可以使用foreach或for循环语句处理,非常方便。另外,GetAll取得的数组与Smarty模板的foreach配合得非常好。
我们一起看下面的脚本例子:

 代码如下
<?php
include_once("libs/adodb/adodb.inc.php");
// 创建一个mysql连接实例对象
$db = NewADOConnection("mysql");
// 打开一个数据库连接
$db->Connect("localhost", "root", "root", "library") or die("Unable to connect");
// 构造并执行一个查询
$query = "SELECT * FROM library";
$result = $db->GetAll($query) or die("Error in query: $query. " . $db->ErrorMsg());
// 清除无用的对象
$db->Close();
// 可以使用print_r打印该数组的内容
// print_r($result); exit(0);
// 遍历记录集,显示列的内容:TITLE 和AUTHOR
foreach ($result as $row){
echo $row[1] . " - " . $row[2] . "n";
}
// 取得和显示返回的记录行数
echo "n[" . sizeof($result) . " 行记录被返回]n";
?>

GetAll()方法取得记录集后,产生一个二维数组,类似于下面的样子:
Array
(
[0] => Array
(
[0] => 14
[id] => 14
[1] => Mystic River
[title] => Mystic River
[2] => Dennis Lehane
[author] => Dennis Lehane
)
[1] => Array
(
[0] => 15
[id] => 15
[1] => For Kicks
[title] => For Kicks
[2] => Dick Francis
[author] => Dick Francis
)
   //下略
)

 

我们在数组一章,提到过这类混合数组最适合用foreach来处理。这种方法是对Execute()方法的补充或替代,尤其适合在遍历查询整个表时使用。
另外,ADODB还提供取得一条记录的方法:GetOne()。
2.GetOne()方法ADODB有个比较直接的方法可以比较方便地检测某条记录是否存在,那就是它的GetOne($sql)方法。
该方法返回查询记录的第1条第1个字段名的值,如果执行过程中出现错误,则返回布尔值false。
我们可以检测这个值是否存在:

 代码如下
<?php
Include_once("libs/adodb/adodb.inc.php");
// 创建一个mysql连接实例对象
$db = NewADOConnection("mysql");
// 打开一个数据库连接
$db->Connect("localhost", “root”, “passwd”, “adodb”) or die("Unable to connect!");
$rs = $db->GetOne("SELECT * FROM library WHERE id='$id'");
if($rs){
echo '记录存在';
}else {
   echo '记录不存在';
}
?>

不过这样有一个问题是,如果数据表中id=$id的记录有多条,不仅仅要知道是否存在有这样一条记录,还要把这条记录提取出来,则可以使用ADODB的GetRow()方法。
3.GetRow()方法

 代码如下
<?php
Include_once("libs/adodb/adodb.inc.php");
// 创建一个mysql连接实例对象
$db = NewADOConnection("mysql");
// 打开一个数据库连接
$db->Connect("localhost", “root”, “passwd”, “adodb”) or die("Unable to connect!");
$rs = $db->GetRow("SELECT * FROM library WHERE id='$id'");
if(is_array($rs)){
   echo '记录存在';
   print_r($rs);
} else {
   echo '记录不存在';
}
?>

需要注意的是,GetOne($sql) 和 GetRow($sql) 都能得到一条特定的记录,或者得到该记录不存在的信息,但是如果符合查询条件的记录存在多条时,则这两个方法只传回第一条记录,其他的都自动抛弃。
如果只要得到查询结果的行数,则可以使用结果集方法中的RecordCount()方法。
4.取得返回的记录行数ADODB还提供了一批实用功能,如在进行查询时,提供了非常有用的RecordCount() 和FieldCount()方法,分别返回记录的数量和字段的数量,以下是应用这两个方法的例子。

 代码如下
<?php
include("libs/adodb/adodb.inc.php");
// 创建一个mysql连接实例对象
$db = NewADOConnection("mysql");
// 打开一个数据库连接
$db->Connect("localhost", “root”, “passwd”, “adodb”) or die("Unable to connect!");
// 构造并执行一个查询
$query = "SELECT * FROM library";
$result = $db->Execute($query) or die("Error in query: $query. " . $db->ErrorMsg());
// 取得和显示返回的记录行数
echo $result->RecordCount() . " 行记录被返回n";
// 取得和显示返回的字段个数
echo $result->FieldCount() . " 个字段被返回n";
// clea up
$db->Close();
?>

我们可以使用FetchField()方法取得字段的信息,其中含有该字段的详细资料,包括名称和类型等,请看如下的脚本例子。

 代码如下
<?php
include("libs/adodb/adodb.inc.php");
// 创建一个mysql连接实例对象
$db = NewADOConnection("mysql");
// 打开一个数据库连接
$db->Connect("localhost", "root", "passwd", "adodb") or die("Unable to connect!");
// 构造并执行一个查询
$query = "SELECT * FROM library";
$result = $db->Execute($query) or die("Error in query: $query. " . $db->ErrorMsg());
// 取得记录集中字段的结构信息
for($x=0; $x<$result->FieldCount(); $x++){
print_r($result->FetchField($x));
}
// 清理无用的对象
$db->Close();
?>

下面输出的是有关id字段的结构信息。
stdClass myMagicbject
(
[name] => id
[table] => library
[def] =>
[max_length] => 3
[not_null] => 1
[primary_key] => 1
[multiple_key] => 0
[unique_key] => 0
[numeric] => 1
[blob] => 0
[type] => int
[unsigned] => 1
[zerofill] => 0
[binary] =>
)
5.其他相关方法当执行一个INSERT查询时,如果该表的主键是一个自动增量的字段,则可以使用ADODB的insert_id()方法,来获得最后数据插入时自动产生的增量值。

 代码如下
<?php
include_once(“libs/adodb/adodb.inc.php”);
// 创建一个mysql连接实例对象
$db = NewADOConnection("mysql");
// 打开一个数据库连接
$db->Connect("localhost", “root”, “root”, “adodb”) or die("Unable to connect!");
// 构造并执行INSERT插入操作
$title = $db->qstr("PHP5与MySQL5 Web开发技术详解");
$author = $db->qstr("杜江");
$query = "INSERT INTO library (title, author) VALUES ($title, $author)";
$result = $db->Execute($query) or die("Error in query: $query. " . $db->ErrorMsg());
// 显示插入的记录号
if ($result){
echo "最后插入的记录ID: " . $db->Insert_ID();
}
// 清理无用的对象
$db->Close();
?>

脚本中的qstr()方法,功能是过滤SQL查询中的非法字符。

首页 1 2 3 末页
打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有5人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板