php数据库类层 php的数据库

怎么样通过php在数据库抽象层简单使用PDO测试代码如下:?php/**************************@Filename: pdotest.php@Content : PDO操作MySQL,Access(测试)**************************/if($_GET['db'] == 'mysql'){$dns = 'mysql:host=localhost;dbname=test';$dbuser = 'root';$dbpass = 'root';$db = new PDO($dns,$dbuser,$dbpass);}else{$db = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=".getcwd()."//test.mdb");}if($_POST['reg']){$db-exec("INSERT INTO t_user (name,email) VALUES ('".$_POST['name']."','".$_POST['email']."') ;");// header('Location:'.$_SERVER['PHP_SELF']);?a href="https://www.04ip.com/post/pdotest.php"返回/a?}else{$html = 'div id="new"form action="'.$_SERVER['REQUEST_URI'].'" method="post"Name: input type="text" name="name" size="10" /Email: input type="text" name="email" size="15" /input type="submit" name="reg" value="https://www.04ip.com/post/Register" //form/div';$re = $db-query("SELECT uid,name,email FROM t_user ORDER BY email ;");while($rs = $re-fetch()){$userlisthtml .= 'trtd'.$rs['uid'].'/tdtd'.$rs['name'].'/tdtd'.$rs['email'].'/td/tr';}$html .= 'div id="list"table border="1"captionUser List/captiontheadtrthID/ththName/ththEmail/th/tr/theadtbody'.$userlisthtml.'/tbody/table/div';}echo $html;?
求php zf mvc中数据库层的合理架构方案看到php数据库类层你前面几段写的就知道你是玩Java的 。Java主要用Spring来实现主要的解耦功能 。
PHP这里的框架很少php数据库类层,而且PHP也没有那么灵活的反射机制等吧 。所以如果要用PHP来实现高内聚低耦合 , 有点难度,除非你自己搞框架 。
我看discuz论坛都没有用那么复杂的技术 , 而且我个人觉得PHP用MVC来分,分个controller , 实在没有必要 。
如果楼主用了很复杂的业务逻辑,为何不用Java来做业务中心,PHP做前端,使用Java的WebService来暴露数据呢?
个人拙见 , 一起探讨 。
php如何使用类和数据库进行数据操作贴出自己写的一个数据库类吧 。
class.php
?php
class Db_Base
{
var $db_host;
var $db_name;
var $db_user;
var $password;
var $linkID;
var $sql;
var $result;
//构造函数,其中dbname,dbuser,dbpsd填自己的数据名 , 用户名,密码
function __construct()
{
$this-linkID = 0;
$this-sql = "";
$this-db_name="dbname";
$this-db_user="dbuser";
$this-password="dbpsd";
$this-db_host="localhost";
//调用数据库链接函数
$this-Db_Connect();
}
function Db_Base()
{
$this-__construct();
}
//链接数据库函数
function Db_Connect()
{
$this-linkID=@mysql_connect($this-db_host,$this-db_user,$this-password);
if(!$this-linkID)
{
DisplayError("连接失败");exit();
}
$this-Db_Select();
return true;
}
//选择数据库函数
function Db_Select()
{
$select=mysql_select_db($this-db_name);
if(!$select)
{
DisplayError("选择数据库失败");exit();
}
}
//sql语句操作
function Db_Query($sql)
{
if($sql)$this-sql=$sql;
if(!($this-result=mysql_query($this-sql,$this-linkID)))
{
DisplayError("SQL无效");
return 0;
}
else
{
return $this-result;
}
【php数据库类层 php的数据库】}
//sql语句的结果用数组返回
function Db_Fetch_Array()
{
return mysql_fetch_array($this-result);
}
//select语句 影响的行数
function Db_Num_Rows()
{
return mysql_num_rows($this-result);
}
//INSERT、UPDATE 、DELETE 的影响行数
function Db_Affected_Rows()
{
return mysql_affected_rows();
}
//清除记录
function Db_Free_Result()
{
if(!is_array($this-result)) return "";
foreach($this-result as $kk = $vv)
{
if($vv) @mysql_free_result($vv);
}
}
?
其中DisplayError 为外部定义函数
应用的话,如下操作
example.php
?php
require_once(class.php);
$news=new Db_Base();//构建对象
$sql="select*from tableA limit 0,100";//初始化sql语句
$news-Db_Query($sql);//向数据库插入sql语句
while($re=$news-Db_Fetch_Array())//循环输出sql结果集
{
echo $re[keyA];
echo $re[keyB];//keyA,keyB为你数据表的键
}
echo $news-Db_Num_Rows();//输出本次sql语句影响的行数,假若sql语句是update,delete,insert的,则用Db_Affected_Rows() 函数
$news-Db_Free_Result();//清空查询结果
?
好吧 , 百度的这个表单输入框真烂,不能调格式,代码格式可能很乱,就麻烦楼主慢慢看吧 。若有问题再发消息给我百度号 。
关于php数据库类层和php的数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读