当前位置:网站首页>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
边栏推荐
猜你喜欢

2022年中国数字科技专题分析

8.5 concise implementation of cyclic neural network

The wechat applet optimizes the native request through the promise of ES6

G007-HWY-CC-ESTOR-03 华为 Dorado V6 存储仿真器搭建

重定向和请求转发详解

Wechat applet customer service access to send and receive messages

函数(第一部分)

自主作业智慧农场创新论坛

字节面试 transformer相关问题 整理复盘

Analysis of common storage types and FTP active and passive modes
随机推荐
How to use OCR in 5 minutes
让阿里P8都为之着迷的分布式核心原理解析到底讲了啥?看完我惊了
Detailed explanation of C language knowledge points - data types and variables [2] - integer variables and constants [1]
SSH connects to the remote host through the springboard machine
regular expression
HJ31 单词倒排
ffmpeg安装遇错:nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.
Collation of errors encountered in the use of redis shake
Functions (Part I)
On the day of entry, I cried (mushroom street was laid off and fought for seven months to win the offer)
2022年中国数字科技专题分析
What exactly does the distributed core principle analysis that fascinates Alibaba P8? I was surprised after reading it
Mysql database explanation (10)
Precautions for use of dispatching system
免费在upic中设置OneDrive或Google Drive作为图床
Byte interview programming question: the minimum number of K
Mysql database explanation (IX)
函数(第一部分)
买卖股票的最佳时机系列问题
推荐搜索 常用评价指标