https://blog.csdn.net/xia13100004562/article/details/58598872

2016年12月19日 17:15:39

阅读数:6790

前面已经基本配置了sqlserver的环境,现在就用学习一下如何去操作数据库!!其实方法还是比较简单,可以参考一下mysql,尽量去跟mysql进行比较

1、学习的方法,最好是看手册 
在前一篇文章中涉及到了连接数据库sqlsrv_connect();还记得我们mysql连接数据库的时候也是mysql_connect();两者操作数据库是很相似的。从零基础开始学起的话,只能是查阅手册。查看一下sqlsrv有哪些函数提供我们使用!推荐网址是:http://php.net/manual/zh/index.php 


【注意】很多的方法都跟mysql提供的方法很相似,看到后面的函数名就大概知道里面的用法,比如说mysql执行sql语句的时候调用mysql_query();而sqlserver执行sql语句的时候调用也是sqlsrv_query(),但是特别注意一点就是,它们的传递参数不一样。详细的只能看一下手册。接下来我简单总结一下操作数据的方法

2、连接数据库sqlsrv_connect()

<?php
$serverName = "serverName\sqlexpress";//服务器的名字,本地localhost
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

3、操作数据库 
1)执行sql语句sqlsrv_query(),返回值为true或者false,这里函数的用法跟mysql_query(),不一样。它需要把连接的资源句柄当作参数传进去,看源码。资源句柄就是上面代码连接数据库的“$conn”。

$sql = "select * from test1";   //sql语句
$data = sqlsrv_query($conn,$sql); //$conn资源句柄
if($data == true){
die("执行成功");
}else{
die("执行失败");
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2)获取结果集

//以数值索引数组、关联数组或这两种数组的形式检索下一行的数据。类似于mysql_fetch_array
sqlsrv_fetch_array
//以对象形式检索下一行的数据。
sqlsrv_fetch_object
  • 1
  • 2
  • 3
  • 4
$sql = "select * from test1";
$data = sqlsrv_query($conn,$sql);
if($data == true){
while($row = sqlsrv_fetch_array( $data, SQLSRV_FETCH_ASSOC) ) {
echo $row['id'].", ".$row['name']."<br />";
}else{
die( print_r( sqlsrv_errors(), true));
}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
$sql = "SELECT fName, lName FROM Table_1";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}
while( $obj = sqlsrv_fetch_object( $stmt)) {
echo $obj->fName.", ".$obj->lName."<br />";
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3)显示错误信息sqlsrv_errors():上面都有用到这个函数,只要是操作数据库发生错误,都可以使用这个函数打印出来看一下压 
这里就不用上代码了

有空的时候会补上,不全,没时间

php+sqlserver之如何操作sqlserver数据库的更多相关文章

  1. sqlserver 获取当前操作的数据库名称

    Select Name From Master..SysDataBases Where DbId=(Select Dbid From Master..SysProcesses Where Spid = ...

  2. C#操作SqlServer MySql Oracle通用帮助类Db_Helper_DG(默认支持数据库读写分离、查询结果实体映射ORM)

    [前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系型数据库,在使用了多年的Sql_Helper_DG后,由于项目需 ...

  3. Java连接并操作SQLServer数据库

    本人只需在项目中引入sqljdbc4.jar 包即可 ----------------------------------------- 在JAVA中如何连接SQL Server数据库 - hangh ...

  4. SQLSERVER监控复制并使用数据库邮件功能发告警邮件

    SQLSERVER监控复制并使用数据库邮件功能发告警邮件 最近熬出病来了,都说IT行业伤不起,不说了,说回今天的正题 正题 上个月月底的时候因为要搬迁机房,需要将一个数据信息数据库先搬到我们的机房,然 ...

  5. 【转载】Sqlserver强制密码过期导致数据库登录失败

    Sqlserver在设置登录账户信息的时候,有个复选框信息会被默认勾上,即强制实施密码策略,默认勾选上的还有强制密码过期.如果勾上了这个强制密码过期后,则你的账户密码在一定时间登录后会提示Sqlser ...

  6. 使用cmd命令行窗口操作SqlServer

    本文主要介绍使用windows下的使用cmd命令行窗口操作Sqlserver, 首先我们可以运行 osql  ?/   ,这样就把所有可以通过CMD命令行操作sqlserver的命令显示出来 (有图有 ...

  7. Python操作SQLServer示例(转)

    转自:http://www.cnblogs.com/lrzy/p/4346781.html 本文主要是Python操作SQLServer示例,包括执行查询及更新操作(写入中文). 需要注意的是:读取数 ...

  8. 转:Python操作SQLServer示例

    注:此文也是转载,2018年1月发现此文阅读量过万,略感不安.当时只是为了自己存档学习,未粘此文的原始连接.如有侵权,通过即删除,敬请谅解! 从网上找的,估计原文是:Python操作SQLServer ...

  9. Python操作SQLServer示例

    本文主要是Python操作SQLServer示例,包括执行查询及更新操作(写入中文). 需要注意的是:读取数据的时候需要decode('utf-8'),写数据的时候需要encode('utf-8'), ...

随机推荐

  1. WIN8配置IIS8.0+PHP+Mysql+Zend

    第一步 开启WIN8的IIS 8.0  控制面板 → 程序与功能 → 启用或关闭WINDOWS功能 按照上面勾选 确定即可 成功安装完毕 打开  http://localhost/ 或者 http:/ ...

  2. ASC与HEX之间的转换

    ASC与HEX之间的转换 有这么两个函数: 函数 原型 功能 返回值 参数 备注 hex2asc __int16 hex2asc(unsigned char *strhex,unsigned char ...

  3. jQuery操作(一)

    基本语法:$(selector).action() 寻找元素(重要的选择器和筛选器) 一:选择器 1.1 基本选择器: $("*") $("#id") $(&q ...

  4. mysql bigint ,int , smallint,tinyint 的范围

    bigint  8字节 64位 int 4字节 32位 smallint 2字节 16位 tinyint 1字节8位 .. 范围  -128 到 127  , 如果是无符号 ,则返回 位 0-255 ...

  5. PHP连接SQLServer2012两例

    首先放上 PHP连接SQLServer的驱动下载地址 http://php.net/manual/zh/ref.pdo-sqlsrv.php 另外PHP for IIS管理工具 大家可以自己搜索一下 ...

  6. transform.forward和vector3.forward

    Vector3.forward的值永远是(0,0,1)(这里的(0,0,1)是世界坐标的(0,0,1)),而transform.forward我们可以理解为其对应物体的z轴方向,是一个向量,而不是一个 ...

  7. python中的特殊成员

    python中的特殊成员: 小甲鱼论坛总结

  8. Java 读取HDFS文件系统

    最近有个需求,计算用户画像. 系统大概有800W的用户量,算每个用户的一些数据. 数据量比较大,算用hive还是毫无压力的,但是写的oracle,在给出数据给前端,就比较难受了. 然后换了种解决方法: ...

  9. 2018.10.25 bzoj3928: [Cerc2014] Outer space invaders(区间dp)

    传送门 区间dpdpdp好题. 首先肯定需要把坐标离散化. 然后在数轴上面区间dpdpdp. 对于当前区间,区间中最大的数一定会被选. 于是我们记f[i,j]f[i,j]f[i,j]表示所有左端点在i ...

  10. ZOJ 3216 Compositions (矩阵快速幂)

    题意:求把 n 拆成几个大于等于 k 的数的和的方案数. 析:根据题目很容易写出递推式,f[i] = f[i-1] + f[i-k],什么意思呢,f[i-1] 表示是进行加 1 操作,那么可以给 n- ...