记录一次php操作SQL Server(mssql)数据库

admin 2020-06-29 06:17:57 764浏览 0评论

可能有些软件或者旧的系统使用.net的然后我们就需要用php来连接mssql啦,之前也看到过相关教程,但是之前一直没需求,所以也就从来没动说操作过.废话不多说了进入正题开始教程吧!


PS: SQL Server只对最新的PHP7提供了64位的驱动组件程序,对PHP5只有32位的,大家安装过程中要注意,PHP5系统只能用32位的php程序包,除了SQL Server的PHP驱动程序,大家可能还需要安装SQL Server的ODBC驱动程序。


在操作之前我们需要确认下数据库是否能被外部连接,我们可以下一个Navicat软件来测试,其次默认端口号是1433.这些确认完后我们来操作吧


第一步: 通过phpinfo()来查看PHP的版本,线程、以及系统位数等

线程 Thread Safe 是:enabled 那么就是ts版,不然就是nts版,对于版本问题如果是linxu可以试出来,看到pdo_sqllsrv加载了版本就对了.


第二步到官方下载驱动程序地址是:https://www.microsoft.com/en-us/download/details.aspx?id=20098


下载完后,我们需要把它解压到一个文件夹.解压完了后复制到php对应的版本ext文件夹里(这个是win系统的操作)


其次还有个坑: 就是会提示 odbc驱动问题,网上说下载 msodbcsql.msi这个文件 安装即可,我也试过但是不知是否有效.


最后一个坑就是,网上很多人都教了你怎么连接成功,也没人教你操作数据库的。关键是得读出数据才行,下面我分享我连接成功的

<?php
header("Content-type: text/html; charset=utf-8"); 
$serverName = "127.0.0.1"; //数据库服务器地址
$uid = "你的数据库用户名"; //数据库用户名
$pwd = "你的数据库用户密码"; //数据库密码
$connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"localtest");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn == false)
{
echo "连接失败!";
die( print_r( sqlsrv_errors(), true));
}else{
echo "连接成功!";   
}
$query = sqlsrv_query($conn, "select top 10 * from 数据表名");
while($row = sqlsrv_fetch_array($query))
{
  print_r($row);
}
?>

文章来自: http://8511.cn/5.html 后期我再整理了下


更新

<?php

$serverName = "127.0.0.1"; //数据库服务器地址
$uid = "sa"; //数据库用户名
$pwd = "hosen20220501a"; //数据库密码
$connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"Hosenwms");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false)
{
     echo "连接失败!";
     die( print_r( sqlsrv_errors(), true));
}


$code = '11223';
$Location  = 'S000003481';
$user_code  = 'S000003481';
$Updatetime=date('Y-m-d H:i:s.fff', time());

//get
$getsql="SELECT seq FROM inventory where code='{$code}'";
$getquery = sqlsrv_query($conn, $getsql);
if(sqlsrv_fetch_array($getquery) && strlen($Location) >1){

$tsql = "INSERT INTO Stock_Transfer (code,Location,user_code,Updatetime) VALUES (?,?,?,?)";
$query = sqlsrv_prepare($conn, $tsql,array( & $code , & $Location , & $user_code , & $Updatetime ));
$zx=sqlsrv_execute($query);


}

sqlsrv_close($conn);
?>


0条评论