php连接sql server

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();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/49472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【2024最新】汇总国内免费GPT接口(响应快)

一、什么是GPT接口&#xff1f; GPT接口通常指的是一种编程接口&#xff08;API&#xff09;&#xff0c;它允许开发者将生成预训练转换器&#xff08;Generative Pre-trained Transformer&#xff0c;简称GPT&#xff09;的能力集成到自己的应用程序中。GPT是一种人工智能模型…

基于jeecgboot-vue3的Flowable流程仿钉钉流程设计器-发送信息服务处理

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、因为仿钉钉设计器里发送消息处理是一个服务任务&#xff0c;所以要根据这个服务任务进行处理 2、这里目前只对消息进行处理&#xff0c;就是用websocket的发送方式 输入相应的内容&…

go语言Gin框架的学习路线(十)

目录 GORM的CRUD教程 查询 普通查询 定义 User 结构体 查询所有用户 查询第一个用户 总结 条件查询 内联条件 额外查询选项 高级查询 链式操作 Scopes 多个立即执行方法 GORM的CRUD教程 CRUD 是 "Create, Read, Update, Delete"&#xff08;创建、查询…

电影类平台如何选择服务器

电影类平台如何选择服务器 1、数据存储 电影网站对服务器的要求是比较高的&#xff0c;对存储空间的需求特别大&#xff0c;所以在服务器选择上首先要确保足够大的存储空间。另外&#xff0c;当你的网站内容特别多时&#xff0c;内存不够用&#xff0c;可以选择增加内存&#x…

AIoTedge边缘物联网平台,开启智能物联新架构

边缘物联网平台是一种将计算能力、数据处理和应用服务部署在网络边缘的解决方案&#xff0c;旨在提高响应速度、降低带宽需求和增强数据安全。根据搜索结果&#xff0c;边缘物联网平台应具备以下功能&#xff1a; 云边协同&#xff1a; 云边一体架构&#xff0c;通过云端管理边…

electron笔记:electron更新版本

一.electron版本由13.6.9更新至22.3.27 之前因为remote的原因&#xff0c;electron版本停留在13.6.9&#xff0c;14.x后需要单独处理remote&#xff0c;此次需要Chrome 95以上部分功能&#xff0c;所以需要升级版本到16.x以上&#xff0c;因为本机nodejs版本为16.9.1&#xff…

【深度学习基础】深度学习的关键概念和网络结构

深度学习基础&#xff1a;深度学习的关键概念和网络结构 目录 引言深度学习的关键概念 神经网络激活函数损失函数优化算法 深度学习的网络结构 前馈神经网络&#xff08;FNN&#xff09;卷积神经网络&#xff08;CNN&#xff09;循环神经网络&#xff08;RNN&#xff09;生成…

【java基础】创建线程的主要方式

在Java中创建线程主要有三种方式&#xff1a; 继承Thread类 这是最传统的创建线程的方式。你需要创建一个Thread类的子类&#xff0c;并重写run()方法。在run()方法中编写线程要执行的代码。然后&#xff0c;实例化这个子类并调用start()方法来启动线程。 class MyThread exten…

【BUG】已解决:Downgrade the protobuf package to 3.20.x or lower.

Downgrade the protobuf package to 3.20.x or lower. 目录 Downgrade the protobuf package to 3.20.x or lower. 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身…

【昇腾AI创新大赛集训营南京站学习笔记】-Ascend算子开发课程

昇腾AI创新大赛训练营 14:00-14:30 基础知识-理论课 一、CANN 、达芬奇架构和算子 1.AI Core逻辑架构 达芬奇架构包含三部分&#xff1a; 1&#xff09;计算类&#xff1a;矩阵计算单元&#xff08;两个矩阵扔进去相乘&#xff09;、向量计算单元、标量计算单元 2&#xff09;控…

逻辑漏洞面试问题

1、你挖过业务逻辑漏洞吗&#xff1f;了解的有哪些&#xff1f;如何进行的&#xff1f;对于业务逻辑漏洞&#xff0c;只有一个登录框&#xff0c;你 会怎么测试&#xff1f;逻辑漏洞 xray 如何避免敏感操作&#xff1f; 常见的业务逻辑漏洞类型包括&#xff1a;订单支付漏洞、…

剑指offer的面试题,赋值运算符函数

class CMyString {public:CMyString(char*pDatanullptr);CMyString(const CMyString&str);~CMyString(void);private:char*m_pData;} 如上为类型Cmystring的声明&#xff0c;请为该类型添加赋值运算符函数。 class CMyString { public:CMyString(char* pData nullptr);CMy…

C#港澳台通行证识别接口、台胞证识别、ocr证件识别

在这个快节奏的时代&#xff0c;效率至上&#xff0c;每一秒都弥足珍贵。想象一下&#xff0c;无需手动输入繁琐的证件信息&#xff0c;仅需轻轻一扫&#xff0c;证面上所有文字信息便可呈现在眼前将是多么的便利&#xff0c;这得益于文字识别技术衍生下的-证件识别接口&#x…

基于单片机控制的变压器油压油温故障检测

摘 要 在电力系统的运行中&#xff0c;通过对其核心设备变压器的故障进行检测&#xff0c;以此能够及时、准确的发现变压器的故障&#xff0c;基于单片机控制的变压器油压油温的故障检测的方法&#xff0c;利用压力传感器、温度传感器对变压器的油压、油温进行采集并送入单片机…

vCenter 错误提示 “目标主机上的vmotion接口未配置”

vCenter 错误提示 “目标主机上的vmotion接口未配置” VMware 使用 vCenter 迁移 虚拟机报错 “目标主机上的 vMotion 接口未配置”&#xff0c;配置启用 vMotion 的步骤如下&#xff1a; &#xff08;END&#xff09;

【CentOS7】解决 CentOS 7 使用 `yum` 时出现的错误

解决 CentOS 7 使用 yum 时出现的错误 问题 在使用 yum 进行各种操作时&#xff08;例如 Plesk 更新、系统更新、软件包安装等&#xff09;&#xff0c;可能会出现以下错误&#xff1a; Could not retrieve mirrorlist http://mirrorlist.centos.org/?release7&archx86…

Spring Bean 循环依赖

在Spring框架中&#xff0c;Bean的创建和管理是其核心功能之一。然而&#xff0c;在复杂的应用系统中&#xff0c;Bean之间可能会形成循环依赖&#xff08;Circular Dependency&#xff09;&#xff0c;这种情况如果不加以妥善处理&#xff0c;将会导致Spring容器在初始化时抛出…

leetcode3098. 求出所有子序列的能量和

官解 class Solution(object):# 定义常量mod int(1e9 7) # 模数&#xff0c;用于防止结果溢出inf float(inf) # 无穷大&#xff0c;用于初始化时的特殊值def sumOfPowers(self, nums, k):n len(nums) # 数组长度res 0 # 用于存储最终结果# 三维动态规划表&#xff0c;…

Nacos-2.4.0最新版本docker镜像,本人亲自制作,部署十分方便,兼容postgresql最新版本17和16,奉献给大家了

基于Postgresql数据库存储的nacos最新版本2.4.0,采用docker镜像安装方式 因业务需要,为了让nacos支持postgresql,特意花了两天时间修改了源码,然后制作了docker镜像,如果你也在找支持postgresql的nacos最新版本,恭喜你,你来的正好~ nacos-2.4.0 postgresql的数据库脚本…

C#中的new以及类

new关键字的用法 实例化对象&#xff1a;使用 new 关键字可以创建一个类的实例。例如&#xff1a; ​ MyClass obj new MyClass(); 指定构造函数&#xff1a;如果类有多个构造函数&#xff0c;可以使用 new 关键字指定使用哪一个构造函数来创建对象。例如&#xff1a; ​ MyC…