当前位置:网站首页>Connect PHP to MSSQL via PDO ODBC
Connect PHP to MSSQL via PDO ODBC
2022-04-23 15:26:00 【allway2】
You need to set up several profiles ./etc/odbc.ini
,/etc/odbcinst.ini
and /etc/freetds/freetds.conf
( These positions are right Ubuntu 12.04 It works , And probably for most *nixes That's right. ).
You need to install unixodbc
and freetds
( Not sure CentOS What is the name of the package on ). stay Ubuntu in , This will be apt-get install unixodbc tdsodbc
.
Help on installing these , Please check this question Can't Install FreeTDS via Yum Package Manager
/etc/odbc.ini( This file may be empty )
# Define a connection to a Microsoft SQL server
# The Description can be whatever we want it to be.
# The Driver value must match what we have defined in /etc/odbcinst.ini
# The Database name must be the name of the database this connection will connect to.
# The ServerName is the name we defined in /etc/freetds/freetds.conf
# The TDS_Version should match what we defined in /etc/freetds/freetds.conf
[mssql]
Description = MSSQL Server
Driver = freetds
Database = XXXXXX
ServerName = MSSQL
TDS_Version = 7.1
/etc/odbcinst.ini
# Define where to find the driver for the Free TDS connections.
# Make sure you use the right driver (32-bit or 64-bit).
[freetds]
Description = MS SQL database access with Free TDS
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
#Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libtdsS.so
UsageCount = 1
/etc/freetds/freetds.conf( Or you can go to /etc/freetds.conf Find it )
# The basics for defining a DSN (Data Source Name)
# [data_source_name]
# host = <hostname or IP address>
# port = <port number to connect to - probably 1433>
# tds version = <TDS version to use - probably 8.0>
# Define a connection to the Microsoft SQL Server
[mssql]
host = XXXXXX
port = 1433
tds version = 7.1
You may need tds version = 7.1
According to your MSSQL Version change the line above .
After making these changes , You must restart apache.
In your PHP In the code , You will create... Like this PDO object :
$pdo = new PDO("dblib:host=mssql;dbname=$dbname", "$dbuser","$dbpwd");
Please note that , Your user name may need to be in the following format :domain\username
.
Besides , If you execute and search in the page “freetds”, You will know that it works ,phpinfo()
This will display a mssql part , among freetds List as library version .
The accepted answer is in the actual PHP Is correct in the call . As someone rightly commented , It should call odbc The driver . secondly , It has not been used in odbc.ini The name of the data source configured in (DSN), But it's actually creating a ad-hoc DSN. Instead, :
$pdo = new PDO("odbc:mssql", "$dbuser","$dbpwd");
among mssql refer to odbc.ini Medium DSN object
You can create ad-hoc DSN:
$pd = new PDO('odbc:DRIVER=FreeTDS;SERVERNAME=mssql;DATABASE=' . $dbName,
$dbuser, $dbpass);
among mssql Now I mean freetds.conf Server object in , and FreeTDS refer to odbcinst.ini Driver object in
( This should really be a comment , But I don't represent ).
If you want to use FreeTDS The driver directly sets pdo odbc Connect To MS SQL The server , Without having to be in the configuration file freetds.conf It is specified in .
$connection_string = "odbc:DRIVER=FreeTDS;SERVER=$serverName;PORT=$portNo;DATABASE=$dbName";
$conn = new PDO($connection_string, $dbUser, $dbPass);
If you have a named instance MSSQL The server , You can delete the port number , And then to server_ip\instance_name Format modification $serverName for example :“192.168.1.1\sqlexpress”, among sqlexpress Is the instance name .
$connection_string = "odbc:DRIVER=FreeTDS;SERVER=$serverName;DATABASE=$dbName";
$conn = new PDO($connection_string, $dbUser, $dbPass);
Please note that odbcinst.ini Configure driver location in
[FreeTDS]
Description = TDS driver (Sybase/MS SQL)
Driver = libtdsodbc.so
Setup = libtdsS.so
版权声明
本文为[allway2]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204231525131265.html
边栏推荐
- 群体智能自主作业智慧农场项目启动及实施方案论证会议
- Differential privacy (background)
- MySQL query library size
- Set onedrive or Google drive as a drawing bed in upic for free
- How to design a good API interface?
- Application of skiplist in leveldb
- Five data types of redis
- Detailed explanation of redirection and request forwarding
- 8.3 language model and data set
- asp. Net method of sending mail using mailmessage
猜你喜欢
The wechat applet optimizes the native request through the promise of ES6
win10 任务栏通知区图标不见了
Lotus DB design and Implementation - 1 Basic Concepts
Tun equipment principle
8.2 text preprocessing
8.5 concise implementation of cyclic neural network
Sword finger offer (1) -- for Huawei
Detailed explanation of kubernetes (IX) -- actual combat of creating pod with resource allocation list
G007-hwy-cc-estor-03 Huawei Dorado V6 storage simulator construction
API gateway / API gateway (III) - use of Kong - current limiting rate limiting (redis)
随机推荐
Mysql连接查询详解
如何设计一个良好的API接口?
推荐搜索 常用评价指标
C language super complete learning route (collection allows you to avoid detours)
Redis master-slave synchronization
Reptile exercises (1)
Lotus DB design and Implementation - 1 Basic Concepts
Little red book timestamp2 (2022 / 04 / 22)
JS - implémenter la fonction de copie par clic
Mysql database explanation (IX)
Mysql database explanation (10)
MySQL Basics
MultiTimer v2 重构版本 | 一款可无限扩展的软件定时器
Crawling fragment of a button style on a website
YML references other variables
For 22 years, you didn't know the file contained vulnerabilities?
Detailed explanation of C language knowledge points - data types and variables [2] - integer variables and constants [1]
MySQL InnoDB transaction
Krpano panorama vtour folder and tour
如何设计一个良好的API接口?