赞
踩
php连接sqlserver有三种方式
一:odbc连接,废话不多说直接上代码,封装了一个单例
- <?php
- /**
- * odbcServer.php
- * Author: Erekys
- */
-
- namespace App\Model;
- class odbcServer{
-
- public static $server;
- public static $username;
- public static $password;
- public static $database;
-
- // 静态私有变量,保存类的唯一实例
- private static $instance = null;
-
- public function __construct () {
- $this->server = server;
- $this->username = username;
- $this->database = database;
- $this->password = password;
- }
-
- // 私有克隆方法,防止外部克隆
- private function __clone()
- {
- }
-
- // 私有反序列化方法,防止外部反序列化
- private function __wakeup()
- {
- }
-
- // 静态公有方法,用于获取类的唯一实例
- public static function getInstance()
- {
- if (self::$instance === null) {
- self::$instance = new self();
- }
- return self::$instance;
- }
- /**
- * db_con
- *
- * 创建SqlServer连接
- */
- public function db_con()
- {
- $server = $this->server;
- $username = $this->username; //数据库用户名
- $password = $this->password; //数据库密码
- $database = $this->database; //数据库
- @header("Content-Type:text/html;charset=GB18030");
- try {
- // DSN 是 Data Source Name 的缩写,指定连接数据源的名称
- $dsn = "Driver={SQL Server};Server=192.168.0.106;Database=QHXJXdata;";
-
- // 使用 odbc_connect() 函数建立连接
- $conn = odbc_connect($dsn, 'sa', 'lhq119LHQ');
-
- return $conn;
- }catch (Exception $e) {
- echo "异常信息:", $e->getMessage();
- }
- }
- /**
- * db_query
- * 执行select语句,返回二维数组。
- */
- public function db_query($sql, $fieldcount)
- {
- $con = db_con();
- if (is_null($con))
- return null;
- $sql=iconv('UTF-8','GBK',$sql);
- $rs = odbc_exec($con, $sql);
-
- if( $rs === false) {
- //echo 'sql error : ' . $sql;
- //exit;
- }
-
- $table = [];
-
- if( $rs === false || odbc_num_rows($rs) == 0 ) {
- return $table;
- }
-
- while (odbc_fetch_row($rs)) {
- $row = [];
- $n = 0;
- while( $n < $fieldcount ) {
- $row[] = odbc_result($rs, ++$n);
- }
- $table[] = $row;
- }
-
- if( count($table) > 0 ) {
- odbc_free_result($rs);
- }
-
- odbc_close($con);
-
- return $table;
- }
-
- /**
- * odbc_exec
- * 执行insert,update或delete语句。
- * 如果执行不成功,调整一下数据库参数和odbc_connect参数。
- */
- public function db_exec($sql)
- {
- $con = db_con();
- if (is_null($con))
- return null;
- $dat = odbc_exec($con, $sql);
- odbc_close($con);
- return $dat;
- }
- }
-
-
-
-
第二种:sqlserver,sqlserver需要php打开sqlserver扩展,windows下载扩展
sqlserver扩展地址 下载系统对应的64还是32位,还要看支持的php版本,下载下来的压缩包解压
然后把dll文件拷贝到php/ext下 php.ini加入extension=php_sqlsrv.dll.然后就可以用了\
-
- $serverName = "your_server_address"; // 服务器地址
- $connectionOptions = array(
- "Database" => "your_database_name", // 数据库名
- "Uid" => "your_username", // 用户名
- "PWD" => "your_password" // 密码
- );
-
- // 连接数据库
- $conn = sqlsrv_connect($serverName, $connectionOptions);
-
- if ($conn === false) {
- die(print_r(sqlsrv_errors(), true));
- }
-
- $sql = "SELECT * FROM your_table_name";
- $stmt = sqlsrv_query($conn, $sql);
-
- if ($stmt === false) {
- die(print_r(sqlsrv_errors(), true));
- }
-
- // 输出结果
- while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
- print_r($row);
- }
-
- // 释放资源和关闭连接
- sqlsrv_free_stmt($stmt);
- sqlsrv_close($conn);
第三种:pdo_sqlsrv
需要下载php_pdo_sqlsrv扩展,php_pdo_sqlsrv下载地址
下载解压拷贝到php/ext下
- try {
- // 连接字符串格式:"DRIVER={SQL Server Native Client 10.0};Server=你的服务器地址;Database=你的数据库名;Trusted_Connection=yes;"
- // 或者使用SQL Server 2012或更高版本的格式:"Server=你的服务器地址;Database=你的数据库名;Integrated Security=true;"
- $connectionString = "DRIVER={SQL Server};Server=your_server_address;Database=your_database_name;Trusted_Connection=yes;";
-
- $db = new PDO($connectionString);
-
- // 测试连接
- $stmt = $db->query("SELECT * FROM your_table_name");
- $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
-
- print_r($rows); // 输出查询结果
-
- } catch (PDOException $e) {
- echo "数据库连接失败: " . $e->getMessage();
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。