PHPRPC应用之二------PHPSql字串生成器DEMO
时间:2009-02-27
来源:互联网
http://www.phprpc.com
很久以前想写没动手,
C#负责客户端生成
PHPRPC负责数据库操作类和数据的提供;
在这个小项目里,因为不想用web界面,所以选择了c#来做客户端,但是c#有弊端就是数据库操作类的通用性问题,为了解决这个问题
我选择了PHPRPC来提供开放的API,用PDO来实现,这样就达到了目的,不怎么会说,不明白的可以跟帖,上图代码:
先只实现了后台框架,人容易扩展。
db.class.php
[php]<?php
class API
{
public function __construct()
{
}
public function InitInfo($rnd)
{
if(!file_exists($rnd.'.ini'))
{
$handle=fopen($rnd.'.ini','wb');
fclose($handle);
}
return true;
}
public function GetTables($rnd,$dbtype,$dbhost,$user,$pw,$dbname)
{
$ini ='dbtype='.$dbtype."\r\n";
$ini.='dbhost='.$dbhost."\r\n";
$ini.='user='.$user."\r\n";
$ini.='pw='.$pw."\r\n";
$ini.='dbname='.$dbname."\r\n";
$handle=fopen($rnd.'.ini','wb');
fwrite($handle,$ini);
fclose($handle);
$db = new DB($dbtype,$dbhost,$user,$pw,$dbname);
return $db->GetTables();
}
public function GetFields($rnd,$table)
{
$ini=parse_ini_file($rnd.'.ini');
$db = new DB($ini['dbtype'],$ini['dbhost'],$ini['user'],$ini['pw'],$ini['dbname']);
return $db->GetFields($table);
}
public function a()
{
return 'dddff';
}
};
class DB
{
private $pdo=null;
private $m_dbtype='';
public function __construct($dbtype,$dbhost,$user,$pw,$dbname)
{
$dns=$dbtype.':host='.$dbhost.';dbname='.$dbname;
$this->pdo = new PDO($dns,$user,$pw);
$this->m_dbtype=$dbtype;
}
public function GetTables()
{
switch($this->m_dbtype)
{
case 'mysql':
$rs=$this->pdo->query('show tables');
return $rs->fetchAll();
break;
}
}
public function GetFields($table)
{
switch($this->m_dbtype)
{
case 'mysql':
$rs=$this->pdo->query('DESCRIBE '.$table);
return $rs->fetchAll();
break;
}
}
};
?>[/php]
api.php
<?php
require_once('API/phprpc_server.php');
require_once('db.class.php');
$rpc = new phprpc_server();
$rpc->add(array(
'InitInfo',
'GetTables',
'a',
'GetFields'),new API());
$rpc->start();
/*
$api = new API();
$api->GetTables('2222','mysql','127.0.0.1','root','123456','l_taobao');
$api->GetFields('2222','l_class');
//echo $api->a();
*/
?>
客户端c#源代码:

作者: T.T.R 发布时间: 2009-02-27
作者: tdweb 发布时间: 2009-02-27
作者: tdweb 发布时间: 2009-02-27
作者: houhuiyang 发布时间: 2009-02-27

作者: ilsanbao 发布时间: 2009-02-27
作者: lxylxy888666 发布时间: 2009-02-27
作者: andot 发布时间: 2009-02-27
充电...
作者: nawanr 发布时间: 2009-02-27
作者: 05542002 发布时间: 2009-02-27
作者: T.T.R 发布时间: 2009-02-28
作者: naodai 发布时间: 2009-03-03
作者: mailangel123 发布时间: 2009-03-03


作者: kwlong2008 发布时间: 2009-03-25
作者: 逆水鱼 发布时间: 2009-05-27
cevin1991[at]yahoo.cn
作者: yafeikf 发布时间: 2009-05-27
作者: netbuddy 发布时间: 2009-06-19

作者: nianjin 发布时间: 2009-06-22
作者: hydata 发布时间: 2009-06-25
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28