发新话题
打印

adodb学习

adodb学习

复制内容到剪贴板
代码:
中文官方资料:http://www.ifin.net.tw/adodb/adodb_tutorial.htm




1. 连接数据库

<?php

include("adodb/adodb.inc.php"); # adodb的最基本的文件必须包含进去

$DB = NewADOConnection('mysql://root:1qaz2wsx@localhost/test');# 这里mysql表示连接mysql数据库,如果改成oracle就是连接oracle了,root是连接数据库用户,mysql_password是密码,localhost是主机地址,test表示数据库




$DB->debug=true;# 打开调试开关

if (!$DB) die("Connection failed");# 判断是否连接成功




?>




2. 读出表纪录

<?php

$sql = " select * from user ";

$rs = $DB->Execute($sql);  // 执行sql语句

//$cnt = 0;

while ($arr = $rs->fetchRow()) // 这里的FetchRow()相当于:mysql_fetch_array()

{

echo $arr[id].":". $arr["user"] ."<br>";



//print_r($arr); print "<br>";

}




?>




3. 读出单条纪录:

<?php

$row = $DB->GetRow("select * from user where id=21 "); // 使用GetRow()

echo $row[id] .":". $row[user]."<br>";




?>




4. 读出纪录所在纪录位置:

<?php

$val = $DB->GetOne("select * from user where id =22 ");

echo $val."<br>"; // 这里val = 22,表示第22条纪录的位置;




?>




5. GetAll()

<?php

$arr = $DB->GetAll("select * from user  where id =23 ");

foreach ($arr as $key => $values)

{

    //echo $key .":". $values ."<br>";

    echo $values[id] .":". $values[user] ."<br>";

   

}




?>




6. GetAssoc()

<?php

$arr = $DB->GetAssoc("select * from user");

//print_r($arr);

echo "<br>";

foreach ($arr as $i => $m)

{

    echo $m[id] .":". $m[user] ."<br>";

}




?>




7. 使用缓存:

<?php

$rs = $DB->CacheExecute(60, "select * from user where id=22 ");

while ($row = $rs->FetchRow())

{

    echo $row["id"] .":". $row["user"]."<br>";   

}




?>




8.

<?php

$re = $DB->Execute("select * from user");

if (!$re->EOF)

{

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

    {

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

        $re->MoveNext();

    }

}




?>




9.

<?php

$ADODB_FETCH_MODE = ADODB_FETCH_NUM;

$rs1 = $DB->Execute("select * from user");

$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;

$rs2 = $DB->Execute("select * from user");

print_r($rs1->fields);

foreach ($rs1->fields as $key => $value);

{

    echo "<br>". $key .":". $value ."<br>";

}

echo "<br>";

print_r($rs2->fields);

echo "<br>". $rs2->fields['user'];




?>

Output:

Array ( [0] => 33 [1] => N [2] => 1122475990 )

2:1122475990




Array ( [id] => 33 [flag_deleted] => N [user] => 1122475990 )

1122475990




10. 统计sql的纪录数:

<?php

// 统计sql的纪录数

$re = $DB->Execute("select * from user");

$record = $re->RecordCount();

echo $record;




?>




11. 获取插入后的那个id:

<?php

// 读出最后的插入的编号;

$sql = " insert into user (user) values ('". time() ."') ";

$re = $DB->Execute($sql);

echo $DB->Insert_ID() ."<br>";




?>




12. 传回被update或者insert以及delete的列数;

<?php

$re = $DB->Execute("update user set flag_deleted='Y' where id< 30 ");

echo $DB->Affected_Rows();// 传回被update或者insert以及delete的列数;




?>




13. Select指令的Limit及Top支援

ADODB有個$connection->SelectLimit($sql,$nrows,$offset)函數讓你擷取recordset的部分集合,這是採用Microsoft產品中的SELECT TOP用法,及PostgreSQL與MySQL中的SELECT...LIMIT用法的優點,即使原來的資料庫並沒有提供此用法,本函數也模擬提供該使用方式。

快取支援

ADODB允許你在你的檔案系統中暫存recordset的資料,並且在$connection->CacheExecute($secs2cache,$sql)及 $connection->CacheSelectLimit($secs2cache,$sql,$nrows,$offset)等設定的時間間隔到達之後,才真正去做資料庫的查詢以節省時間。

<?php

// select指令的limit及top支援

$sql = "  select * from user order by id asc ";

$re = $DB->SelectLimit($sql, 2,1);

while ($row = $re->FetchRow())

{

    echo $row['id'] .":". $row['user'] ."<br>";

}

echo "<hr>";

?>

本文由lili 发布于Linuxsky 论坛,网址:http://bbs.linuxsky.org/thread-2495-1-1.html

TOP

发新话题