跳至 [1] [2] [全螢幕預覽]
<?php /** * SqlServer操作类(sqlsrv) * Class SQLSrv */ class SQLSrv { private $dbhost; private $dbuser; private $dbpw; private $dbname; private $port; private $result; private $connid = 0; private $insertid = 0; private $cursor = 0; public static $instance = null; public function __construct($db) { function_exists("sqlsrv_connect") or die("<pre class="brush:php;toolbar:false">请先安装 sqlsrv 扩展。"); $this->dbhost = !empty($db['hostname']) ? $db['hostname'] : 'localhost'; $this->dbuser = $db['username']; $this->dbpw = $db['password']; $this->dbname = $db['dbname']; $this->port = !empty($db['port']) ? $db['port'] : 1433; $this->connect(); } public static function getdatabase($db){ if(empty(self::$instance)){ self::$instance = new SQLSrv($db); } return self::$instance; } /** * 连接数据库 * @return int */ private function connect() { $serverName = "{$this->dbhost}, {$this->port}"; $connectionInfo = array( "Database"=>$this->dbname, "UID"=>$this->dbuser, "PWD"=>$this->dbpw); if(!$this->connid = @sqlsrv_connect($serverName, $connectionInfo)){ $this->halt(print_r( sqlsrv_errors(), true)); } return $this->connid; } /** * 执行sql * @param $sql * @return mixed */ public function query($sql) { if(empty($sql)){ $this->halt('SQL IS NULL!'); } $result = sqlsrv_query($this->connid, $sql); if(!$result){ //调试用,sql语句出错时会自动打印出来 $this->halt('MsSQL Query Error', $sql); } $this->result = $result; return $this->result; } /** * 获取一条数据(一维数组) * @param $sql * @return array|bool */ public function find($sql) { $this->result = $this->query($sql); $args = $this->fetch_array($this->result); return $args ; } /** * 获取多条(二维数组) * @param $sql * @param string $keyfield * @return array */ public function findAll($sql, $keyfield = '') { $array = array(); $this->result = $this->query($sql); while($r = $this->fetch_array($this->result)){ if($keyfield){ $key = $r[$keyfield]; $array[$key] = $r; }else{ $array[] = $this->objectToArray($r); } } return $array; } /** * 对象转数组 * @param $obj * @return array */ private function objectToArray($obj){ $ret = array(); foreach ($obj as $key => $value) { if (gettype($value) == "array" || gettype($value) == "object"){ $ret[$key] = $this->objectToArray($value); }else{ $ret[$key] = $value; } } return $ret; } public function fetch_array($query, $type = SQLSRV_FETCH_ASSOC) { if(is_resource($query)) return sqlsrv_fetch_array($query, $type); if($this->cursor < count($query)){ return $query[$this->cursor++]; } return FALSE; } public function affected_rows() { return sqlsrv_rows_affected($this->connid); } public function num_rows($query) { return is_array($query) ? count($query) : sqlsrv_num_rows($query); } public function num_fields($query) { return sqlsrv_num_fields($query); } /** * 释放连接资源 * @param $query */ public function free_result($query) { if(is_resource($query)) @sqlsrv_free_stmt($query); } public function insert_id() { return $this->insertid; } public function fetch_row($query) { return sqlsrv_num_rows($query); } /** * 关闭数据库连接 * @return bool */ public function close() { return sqlsrv_close($this->connid); } /** * 抛出错误 * @param string $message * @param string $sql */ public function halt($message = '', $sql = '') { $_sql = !empty($sql) ? "MsSQL Query:$sql <br>" : ''; exit("<pre class="brush:php;toolbar:false">{$_sql}Message:$message"); } /** * 开始一个事务. */ public function begin() { return sqlsrv_begin_transaction($this->connid); } /** * 提交一个事务. */ public function commit() { return sqlsrv_commit($this->connid); } /** * 回滚一个事务. */ public function rollback() { return sqlsrv_rollback($this->connid); } /** * 返回服务器信息 * @return array */ public static function serverInfo(){ return sqlsrv_server_info($this->connid); } /** * 返回客户端信息 * @return array|null */ public static function clientInfo(){ return sqlsrv_client_info($this->connid); } /** * 析构函数,关闭数据库,垃圾回收 */ public function __destruct() { if(!is_resource($this->connid)){ return; } $this->free_result($this->result); $this->close(); } }
2. [程式碼]使用方法 跳至 [1] [2] [全螢幕預覽]
<?php require "database/sqlsrv_driver.php"; //导入数据库操作类 $_db = array( //数据库连接信息 'hostname' => 'localhost', //主机地址 'username' => 'sa', //用户名 'password' => '123', //密码 'dbname' => 'test_db', //数据库名 'port' => 1433, //端口 默认1433 ); $db = SQLSrv::getdatabase($_db); //数据库连接 #最终 $db 就是你的数据库实例 #查询示例 $sql = "select * from table1"; #查询单条: $result = $db->find($sql); #查询多条: $result = $db->findAll($sql); #执行增删改: $result = $db->query($sql); #...
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章
刺客信條陰影:貝殼謎語解決方案
1 個月前ByDDD
Windows 11 KB5054979中的新功能以及如何解決更新問題
3 週前ByDDD
在哪裡可以找到原子中的起重機控制鑰匙卡
1 個月前ByDDD
如何修復KB5055523無法在Windows 11中安裝?
2 週前ByDDD
Inzoi:如何申請學校和大學
3 週前ByDDD

熱工具

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。