如何使用PHP连接到sql server
我想使用PHP连接到sql server数据库 我安装了XAMPP1.7.0(PHP5.2)和SQLSRV20。我在如何使用PHP连接到sql server,php,sql,sql-server,database-connection,Php,Sql,Sql Server,Database Connection,我想使用PHP连接到sql server数据库 我安装了XAMPP1.7.0(PHP5.2)和SQLSRV20。我在php.ini中添加了扩展,出现以下错误: Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: 10.85.80.229 in C:\xampp\htdocs\xampp\test.php on line 07 代码: 使用localhost而不是您的IP地址 e、 g,
php.ini
中添加了扩展,出现以下错误:
Warning: mssql_connect() [function.mssql-connect]: Unable to connect to
server: 10.85.80.229 in C:\xampp\htdocs\xampp\test.php on line 07
代码:
使用localhost
而不是您的IP地址
e、 g,
并再次检查您的mysql用户名和密码。进一步调查:打印mssql错误消息:
$dbhandle = mssql_connect($myServer, $myUser, $myPass) or die("Could not connect to database: ".mssql_get_last_message());
指定端口也很重要:在MS SQL Server 2000上,用逗号分隔端口:
$myServer = "10.85.80.229:1443";
或
对于以下代码,必须在php.ini中启用mssql,如本链接所述:
试试这个代码
$serverName = "serverName\sqlexpress"; //serverName\instanceName
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
我一直有同样的问题(我希望也是这样)。不管怎么说,它原来是我的ntwdblib.dll版本,在我的PHP文件夹中已经过时了
如果您使用sqlsrv\u connect,则必须下载并安装适用于php的MS sql驱动程序。在这里下载
将其解压缩到php文件夹或xampp文件夹中的ext
然后将其添加到php.ini文件的行末尾
extension=php_pdo_sqlsrv_55_ts.dll
extension=php_sqlsrv_55_ts.dll
我使用的是xampp版本5.5,所以它的名字是php_pdo_sqlsrv_55_ts.dll&php_sqlsrv_55_ts.dll
如果您使用的是xampp 5.5版本的dll文件,则链接中不包含这些文件…希望它有助于在php.ini中启用mssql
;extension=php_mssql.dll
<?php
$serverName = "ServerName";
$uid = "sqlusername";
$pwd = "sqlpassword";
$databaseName = "DBName";
$connectionInfo = array( "UID"=>$uid,
"PWD"=>$pwd,
"Database"=>$databaseName);
/* Connect using SQL Server Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$tsql = "SELECT id, FirstName, LastName, Email FROM tblContact";
/* Execute the query. */
$stmt = sqlsrv_query( $conn, $tsql);
if ( $stmt )
{
echo "Statement executed.<br>\n";
}
else
{
echo "Error in statement execution.\n";
die( print_r( sqlsrv_errors(), true));
}
/* Iterate through the result set printing a row of data upon each iteration.*/
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC))
{
echo "Col1: ".$row[0]."\n";
echo "Col2: ".$row[1]."\n";
echo "Col3: ".$row[2]."<br>\n";
echo "-----------------<br>\n";
}
/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>
到
extension=php\u mssql.dll
<?php
$serverName = "ServerName";
$uid = "sqlusername";
$pwd = "sqlpassword";
$databaseName = "DBName";
$connectionInfo = array( "UID"=>$uid,
"PWD"=>$pwd,
"Database"=>$databaseName);
/* Connect using SQL Server Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$tsql = "SELECT id, FirstName, LastName, Email FROM tblContact";
/* Execute the query. */
$stmt = sqlsrv_query( $conn, $tsql);
if ( $stmt )
{
echo "Statement executed.<br>\n";
}
else
{
echo "Error in statement execution.\n";
die( print_r( sqlsrv_errors(), true));
}
/* Iterate through the result set printing a row of data upon each iteration.*/
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC))
{
echo "Col1: ".$row[0]."\n";
echo "Col2: ".$row[1]."\n";
echo "Col3: ".$row[2]."<br>\n";
echo "-----------------<br>\n";
}
/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>
希望它能有所帮助。尝试以下方法以捕获抛出的异常:
$server_name = "your server name";
$database_name = "your database name";
try
{
$conn = new PDO("sqlsrv:Server=$server_name;Database=$database_name;ConnectionPooling=0", "user_name", "password");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
$e->getMessage();
}
$server_name = "your server name";
$database_name = "your database name";
try {
$conn = new PDO("sqlsrv:Server=$server_name;Database=$database_name;ConnectionPooling=0", "user_name", "password");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
$e->getMessage();
}
首先下载下面的软件
-需要安装
-当您运行此软件时。它将提取dll文件。
并将两个dll文件(php_pdo_sqlsrv_55_ts.dll,扩展名=php_sqlsrv_55_ts.dll)粘贴到C:\wamp\bin\php\php5.6.40\ext\(请确保您的当前版本)
2) 编辑php.ini文件
在下面一行添加
扩展名=php_pdo_sqlsrv_55_ts.dll
extension=php\u sqlsrv\u 55\u ts.dll
请参阅短片
MS SQL连接到php
从microsoft link安装驱动器
安装后,您将获得一些文件。将其存储在系统临时文件夹中
检查php版本、线程或非线程以及窗口位32或64
(线程或非线程,这是phpinfo()提供的)
根据您的系统和xampp配置(php版本和全部),将2个文件(php_sqlsrv和php_pdo_sqlsrv)复制到xampp/php/ext文件夹
添加到php.ini文件
extension=php_sqlsrv_72_ts_x64(php_sqlsrv_72_ts_x64.dll是您在第4步中复制的文件)
扩展名=php_pdo_sqlsrv_72_ts_x64(php_pdo_sqlsrv_72_ts_x64.dll是您在第4步中复制的文件)
下一个Php代码
$serverName=“桌面me\MSSQLSERVER01”;(服务器名\实例名)
//由于$connectionInfo数组中未指定UID和PWD,
//将使用Windows身份验证尝试连接
$connectionInfo=array(“数据库”=>“testdb”、“字符集”=>“UTF-8”)
$conn=sqlsrv_connect($serverName,$connectionInfo)
如果($conn){
//回显“已建立连接。
”;
}否则{
echo“无法建立连接。
”;
模具(打印错误(sqlsrv_errors(),true));
}
//$sql=“插入dbo.master('name')值('test')”;
$sql=“从dbo.master中选择*”;
$stmt=sqlsrv_查询($conn,$sql)
而($row=sqlsrv\u fetch\u数组($stmt,sqlsrv\u fetch\u ASSOC)){
echo$row['id'].“,”$row['name'.“
”;
}
sqlsrv_free_stmt($stmt)
试试$myServer=“localhost”;你确定mysql服务器正在运行吗?我想连接到mssql ie sql server。我已经运行了xampp(mysql,apache),我也尝试过使用localhost,还添加了端口。但是,为了不调用第4行C:\xampp\htdocs\xampp\test.php中未定义的函数sqlsrv_connect(),不使用PDO如何?仅使用PDO,您就可以将php与sql server连接起来。否则你必须使用mysql。谢谢hassan。我试过这个,它在我的案例中起了作用。简单有效。谢谢你。谢谢
<?php
$serverName = "ServerName";
$uid = "sqlusername";
$pwd = "sqlpassword";
$databaseName = "DBName";
$connectionInfo = array( "UID"=>$uid,
"PWD"=>$pwd,
"Database"=>$databaseName);
/* Connect using SQL Server Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$tsql = "SELECT id, FirstName, LastName, Email FROM tblContact";
/* Execute the query. */
$stmt = sqlsrv_query( $conn, $tsql);
if ( $stmt )
{
echo "Statement executed.<br>\n";
}
else
{
echo "Error in statement execution.\n";
die( print_r( sqlsrv_errors(), true));
}
/* Iterate through the result set printing a row of data upon each iteration.*/
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC))
{
echo "Col1: ".$row[0]."\n";
echo "Col2: ".$row[1]."\n";
echo "Col3: ".$row[2]."<br>\n";
echo "-----------------<br>\n";
}
/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>
$dbhandle = sqlsrv_connect($myServer, $myUser, $myPass)
or die("Couldn't connect to SQL Server on $myServer");
$server_name = "your server name";
$database_name = "your database name";
try
{
$conn = new PDO("sqlsrv:Server=$server_name;Database=$database_name;ConnectionPooling=0", "user_name", "password");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
$e->getMessage();
}
$server_name = "your server name";
$database_name = "your database name";
try {
$conn = new PDO("sqlsrv:Server=$server_name;Database=$database_name;ConnectionPooling=0", "user_name", "password");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
$e->getMessage();
}