本文实例讲述了PHP利用pdo_odbc实现连接数据库。分享给大家供大家参考,具体如下:
成都创新互联-专业网站定制、快速模板网站建设、高性价比桦川网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式桦川网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖桦川地区。费用合理售后完善,十多年实体公司更值得信赖。
目的:从sql
server数据库里面把某个视图文件调用出来,以键值对的方式显示在页面上。
利用pdo
odbc来实现PHP连接数据库:
在PHP配置文件里面开启pdo_odbc.dll服务。重启Apache服务器。
在ThinkPHP5.1的项目中在模块里添加config添加规定好的样式数据库:
代码如下:
?php
return
[
//
数据库类型
'type'
=
'sqlsrv',
//
服务器地址
'hostname'
=
'localhost',
//
数据库名
'database'
=
'mysql',
//
用户名
'username'
=
'sa',
//
密码
'password'
=
'123456',
//
端口
'hostport'
=
'',
//
连接dsn
'dsn'
=
'odbc:Driver={SQL
Server};Server=localhost;Database=mysql',
//
数据库连接参数
'params'
=
[],
//
数据库编码默认采用utf8
'charset'
=
'utf8',
//
数据库表前缀
'prefix'
=
'',
//
数据库调试模式
'debug'
=
true,
//
数据库部署方式:0
集中式(单一服务器),1
分布式(主从服务器)
'deploy'
=
0,
//
数据库读写是否分离
主从式有效
'rw_separate'
=
false,
//
读写分离后
主服务器数量
'master_num'
=
1,
//
指定从服务器序号
'slave_no'
=
'',
//
是否严格检查字段是否存在
'fields_strict'
=
true,
//
数据集返回类型
'resultset_type'
=
'array',
//
自动写入时间戳字段
'auto_timestamp'
=
false,
//
时间字段取出后的默认时间格式
'datetime_format'
=
'Y-m-d
H:i:s',
//
是否需要进行SQL性能分析
'sql_explain'
=
false,
//
Builder类
'builder'
=
'',
//
Query类
'query'
=
'\\think\\db\\Query',
//
是否需要断线重连
'break_reconnect'
=
false,
//
断线标识字符串
'break_match_str'
=
[],
];
?
在控制器controller里面建一个控制文件Test.php
代码如下:
?php
namespace
app\index\controller;
use
think\Db;
use
think\Controller;
class
Test
extends
Controller
{
public
function
zz(){
$data=Db::view('View_2')-select();
echo
json_encode($data);
}
}
?
最后调用入口文件即可访问。
我的效果:
[{"111":"123","1112":"LLP","232":"1","ROW_NUMBER":"1"},{"111":"123","1112":"BB","232":"2","ROW_NUMBER":"2"}]
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend
FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
您可能感兴趣的文章:ThinkPHP实现多数据库连接的解决方法tp5(thinkPHP5)框架实现多数据库查询的方法ThinkPHP3.1新特性之多数据库操作更加完善tp5(thinkPHP5)框架连接数据库的方法示例PHP7使用ODBC连接SQL
Server2008
R2数据库示例【基于thinkPHP5.1框架】thinkPHP5实现的查询数据库并返回json数据实例tp5(thinkPHP5)操作mongoDB数据库的方法tp5(thinkPHP5)框架数据库Db增删改查常见操作总结thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
本项目需要php+mysql来实现。
首先需要分析数据库:
需要建立用户表(user)
表中字段:编号(id int primary key auto_increment),昵称(nickname varchar(255)),性别(sex int(1) 男为1,女为0),邮箱(email varchar(255)),注册时间(reg_time varchar(255) 时间戳)
还需要建立留言表(leaveword)
表中字段:编号(id int primary key auto_increment),留言用户编号(user_id int),留言内容(content text),留言时间(leaveword_time varchar(255))
建完表并插入一些测试数据后,就开始设计页面了。
当用户登录后,需要把用户的id存入session中$_SESSION['user_id'],以便用来验证用户是否登录,是否有权限发表留言。
用户进入到留言页面中以后,需要分页展示其他(包括自己)的留言。这是本人写的分页函数给你作为参考:
function getPageNum($table,$pagesize=10,$where="1=1"){ //这个函数用来获得总记录数
global $db;
$html="";
$sql="select * from ".$table." where ".$where;
$re=$db-sql_query($sql);
$num=$db-sql_numrows($re);
$pageNum=ceil($num/$pagesize);
return $pageNum;
}
function paging($table,$pagesize=10,$nowpage=1,$where="1=1",$url=""){ //这个函数用来获得分页字符串
global $db;
$html="";
$sql="select * from ".$table." where ".$where;
$re=$db-sql_query($sql);
$num=$db-sql_numrows($re);
$pageNum=ceil($num/$pagesize);
if($nowpage-2=2){
$start=1;
}else if($nowpage=$pageNum-2){
$start=$pageNum-4;
}else{
$start=$nowpage-2;
}
$end=($start+4=$pageNum)?$pageNum:$start+4;
$html.="a href='?page=1'首页/a";
for($i=$start;$i=$end;$i++){
if($url==""){
$html.="a href='?page=".$i."'".$i."/a";
}else{
$html.="a href='?page=".$i."".$url."'".$i."/a";
}
}
$html.="a href='?page=".$pageNum."'尾页/a";
return $html;
}
当用户提交留言时,应该就不用多说了。当用户点击提交(submit)后,以$_POST或以$_GET来接提交的值,然后写个插入语句
insert into leaveword values();这个不用我多说,你应该会吧。
说实在的留言确实没多少东西,惟一的难点就是,如何把用户的留言以分页的形式显示。
再难一点,就是在提交留言时,用ajax来做,达到页面无刷新的效果。
这是本人的一点心得,希望可以对你写项目描述有帮助。
1.首先要全面分析一下你的系统涉及到哪些事物对象,一般来说是为每种对象建立一张表。
2.然后是分析每个事物都有哪些属性,每个属性是什么特点,反映在数据库中这个字段是什么类型。
2.然后分析各个事物之间的关系,哪个是“一”,哪个是“多”。如班级是“一”,学生是“多”,则要在学生表中添加一个字段来保存他所属的班级。
最基本的就是这样,其他就是一些优化的问题。
建议你在网上找一些相关电子书进行系统的学些;然后就是可以下载一些程序,想dz,ecshop之类,如果让你自己来设计数据库你会怎样做,然后打开程序看别人是怎么设计的;看多了就熟悉了。