标签:两种 use nbsp 下载 print could not html mss ace
大家都知道php跟mysql是绝配,但是因为有时候工作需要,要求php访问操作sql2000,怎么办呢?
一般来说有两种方式:
1. sqlsrv驱动方式
2. odbc方式
sqlsrv驱动方式,因为微软公司原因,不提供sql2000的访问驱动,只提供了sql2005以上的驱动,所以如果你的数据库是2005以上版本,特别是sql2008r2,到微软官方可以下载到sql2008 for php的驱动,网上有很多文章介绍,我的博客里有篇文章 http://www.cnblogs.com/skysowe/p/5749022.html 专门讨论这个情况;
我工作环境是:php 5.5n(phpstudy) + nginx + tp5.10 + sql2000 + win7(64位)系统
网上搜到了这篇文章http://www.cnblogs.com/huangtailang/p/6485528.html,测试了一下,文章里的方法是可用的:
(一)使用odbc方式在控制器里工作:
<?php namespace app\index\controller; use PDO; //for pdo odbc sql2000 or sql2008r2 class Index { public function index() { header(‘Content-type:text/html; charset=utf-8‘); ////////////////////////////////////////////////////// //test sql2000&sql2008r2 pdo ////////////////////////////////////////////////////// $dbname=‘master‘; $username=‘sa‘; $password=‘yoooko‘; //--------------------------------------------------------------ok //sql2000 $mssqldriver = ‘{SQL Server}‘; $hostname=‘127.0.0.1\sql2000,1434‘; //使用ODBC方式连接 $dbDB = new PDO("odbc:Driver=$mssqldriver;Server=$hostname;Database=$dbname", $username, $password); //-------------------------------------------------------------- //--------------------------------------------------------------ok //sql2008r2 //$mssqldriver = ‘{SQ Server Native Client 11.0}‘; //$mssqldriver = ‘{ODBC Driver 11 for SQL Server}‘; //$hostname=‘127.0.0.1\sql2008r2,14333‘; //没有安装sqlsrv驱动时无法使用,error:could not find driver //$dbDB = new PDO("sqlsrv:Server=$hostname;Database=$dbname", $username, $password); //-------------------------------------------------------------- $sql = "SELECT * FROM cs"; foreach ($dbDB->query($sql) as $row) { var_dump($row); } } }
(二)使用database.php + 控制器的方式工作
在database.php里配置:
return [ // 数据库类型 ‘type‘ => ‘Sqlsrv‘, //必须输入<br> // 用户名 ‘username‘ => ‘sa‘, // 密码 ‘password‘ => ‘yoooko‘, // 连接dsn,驱动、服务器地址和端口、数据库名称 ‘dsn‘ => ‘odbc:Driver={SQL Server};Server=127.0.0.1\sql2000,1434;Database=master‘, ];
在Index.php控制器里:
<?php namespace app\index\controller; use think\Db; class Index { public function index() { header(‘Content-type:text/html; charset=utf-8‘); //$user = Db::table(‘cs‘)->select(); //不行,有row_number()错误 $user = Db::query("select * from cs"); //必须使用原生sql方式,正确 echo ‘<pre>‘; print_r($user); echo ‘</pre>‘; } }
标签:两种 use nbsp 下载 print could not html mss ace
原文地址:http://www.cnblogs.com/skysowe/p/7542294.html