现在这个社会,我相信没有人不会不知道计算机吧,计算机现在在我国迅速发展,计算机的就业前景也是很不错的,所以,现在很多人都会忘计算机上面发展,小弟我本身也是学习计算机的,今天,像和大家分享下我的随堂笔记,不知道对大家有没有帮助。

1 更改php.ini 配置文件
  extension=php_mssql.dll
  前面的;号去掉
2 确定ext目录下是否有php_mssql.dll文件
3 复制ntwdblib.dll php_mssql.dll php.ini复制到windows/system32 
二 连接sqlserver2000
  1 连接数据库
    $conn= mssql_connect("localhost,1433","sa","");//假设连接的服务器是本机 sqlserver端口号为1433
    2 选择要操纵的数据库
    mssql_select_db("pubs");
    3 执行sql语句 执行任意sql语句都可以用此方法
    $rs=mssql_query("sql语句");
    如果执行的是查询$rs保存的就是查询的结果
    如果执行的是非查询 执行成功true 执行失败false
    4 关闭数据库连接释放资源
      mssql_close($conn);
      注意调用函数时候可以在函数名前加@表示如果执行函数失败也不会报错
如果连接失败排错顺序
1 找不到mssql_connect函数 
  Call to undefined function 
  这php配置环境问题 确定php_mssql.dll文件是否存在
2 tcp 错误
在命令行运行利用netstat-an 命令查看端口号是否可用 不能用打对sqlserver2000安装sp3补丁
3 身份验证错误
  sqlserver服务器是否采用的混合身份验证,并且确定你使用的用户名与密码是否正确
三从结果集中提取数据
$rsi=mssql_fecth_array(结果集)
改函数每执行一次就读取一行数据 并且以数组的形式存储该行数据
如果没有数据改函数返回false
三 处理结果集中的数据
1 mssql_num_fields(结果集) 返回结集中表的列数
  mssql_num_rows(结果集) 返回结果集中表的行数
2 mssql_fetch_field(查询结果集, 指针位置) 读列名称 可用来取得结果集中表的列名称 返回一个表示列信息的对象。
使用语法:
                  
    如果没有指定指针位置数值,则系统预设取回目前指针位置的下一个未取得列名称
echo '读列名称<br>';
$frs=mssql_fetch_field($rs);//读第1列的列名称
echo $frs->name;
$frs=mssql_fetch_field($rs);//读第2列的列名称
echo $frs->name;
依次类推
也可以
$frs=mssql_fetch_field($rs,n);//读第n列的列名称
写一个循环读取全部列名称
echo '读完整列名称<br>'; 
for($i=0;$i<mssql_num_fields($rs);$i++)

{

$frs=mssql_fetch_field($rs,$i);

echo $frs->name."\t";

}
复制代码
或者 
while($frs=mssql_fetch_field($rs))

{

    echo $frs->name;

}
复制代码
3 读行数据
3.1 mssql_result(结果集,行数,列数或列名称) 返回结果集合中某个值
echo '读完整行数量<br>'; 
for ($i=0;$i<mssql_num_rows($rs);$i++)

{

for ($j=0;$j<mssql_num_fields($rs);$j++)

{

  

  echo mssql_result($rs,$i,$j)."\t";

}

echo '<br>';

}
复制代码
3.2 mssql_fetch_row函数会从查询结果处,取得目前指针所在位置的整笔完整资料,并储存为数组类型数值,执行完成后会把索引
指针移向下一笔资料。
语法格式:
mysql_fetch_row(查询结果集) 
while($rows=mssql_fetch_row($rs))

{

foreach($rows as $s)

{

  echo "$s";

}

echo"<br>";

}
复制代码
3.3 mssql_fetch_array(查询结果指针) 
函数会从查询结果处,取得目前指针所在位置的整笔完整资料,并储存为数组类型数值,执行完成后会把索引指针移向下一笔资料

与mssql_fecth_row区别只是访问数组时候可以用列名称字符串访问,鉴于此特点以后我们经常用此方法从结果集中提取数据!
3.4移动指针
在前面我们提到过,当mysql_fetch_row函数执行后,会将目前资料指针下移一笔。而mysql_data_seek函数的功能,则是可将目前的
资料指针移动到任何一笔资料上。
语法格式:
mssql_data_seek(查询结果指针, 资料录位置)
四 php访问sqlserver存储过程
  选学
sql server存储过程
CREATE PROC ProcTest @id int, @name varchar(30) 
output 
as
select @name=username from users where [email=id=@id]id=@id[/email]
select * from users
php实现代码: 
<?php

    $userId = 2;    // test parameter

    $userName;      // test return value

    $conn = mssql_connect("localhost,1433", "sa", "") or die("Can't connect sql server");

    mssql_select_db("mm_db", $conn) 

$stmt = mssql_init("ProcTest", $conn) //产生预处理目的执行存储过程

    mssql_bind($stmt, "@id", $userId, SQLINT4);

//为存储过程输入参数付值,注意必须付的值必须是变量

    mssql_bind($stmt, "@name", $userName, SQLVARCHAR, true);//捕获输出参数

//执行存储过程

    $rs = mssql_execute($stmt);

//向下移动游标以读取第一个查询结果的内容 mssql_next_result($rs);

  //读$rs中的数据

while($rsi=mssql_fetch_array($rs))

{

echo $rsi["job_id"];

}

//读取存储过程的返回值

echo $z;

?>
复制代码
五 与数据库操作相关的字符串函数
1 php配置文件 对于magic_quotes_gpc=on 表单等传输数据是对于特殊的符号进行处理比如’转换成\’进行传输。off不处理。
2 addslashes返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)等。
3 stripslashes将用addslashes()函数处理后的字符串返回原样。

以上就是我为大家提供的PHP链接mssql的方法了,初学者,还望大家多多指教
好了,今天就到这吧,该和大家说再见了,88啦
[url=http://www.gobenet.net.cn]http://www.gobenet.net.cn[/url]