1、学习的方法,最好是看手册
在前一篇文章中涉及到了连接数据库sqlsrv_connect()还记得我们mysql连接数据库的时候也是mysql_connect()两者 *** 作数据库是很相似的。从零基础开始学起的话,只能是查阅手册。查看一下sqlsrv有哪些函数提供我们使用!推荐网址是:
【注意】很多的方法都跟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))
}
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("执行失败")
}
2)获取结果集
//以数值索引数组、关联数组或这两种数组的形式检索下一行的数据。类似于mysql_fetch_arraysqlsrv_fetch_array
//以对象形式检索下一行的数据。sqlsrv_fetch_object 1234
$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))
}
}
$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 />"
}
3)显示错误信息sqlsrv_errors():上面都有用到这个函数,只要是 *** 作数据库发生错误,都可以使用这个函数打印出来看一下压
这里就不用上代码了
我用的PHP版本是php5.6.12,mssql数据库版本为2008两种途径:
1、直接连接
$servname="CAPTAINHERO567"
$conninfo=array(
"Database"=>"netdata",
"UID"=>"lxz2005",
"PWD"=>"831140")
$conn=sqlsrv_connect($servname,
$conninfo)
$sql="select
*
from
Pinfo"
$db=sqlsrv_query($conn,
$sql)
while($row=sqlsrv_fetch_array($db))
{
echo("
".iconv("GB2312","UTF-8",$row["Pname"])."
")
}
2、使用PDO抽象数据层连接
$hostname
=
"192.168.1.100"
$dbname
=
"Northwind"
$username
=
"sa"
$pwd
=
"pwd100"
$dsn="sqlsrv:Server=$hostnamedatabase=$dbname"
$conn
=
new
PDO
($dsn,$username,$pwd)
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION)
echo
"mssql
database
connnection
sucessed!"
classconnCls{
private
$host
//主机名
private
$name
//用户名
private
$pass
//密码
private
$db
//数据库名
private
$type
//编码类型
如:GBK,UTF-8
等
public
$sql
//sql语句
public
$tbl
//表
public
$n
//表中的字段
public
$v
//表中字段的值
public
$id
//获取的id字段
public
$result=1//结果集
public
$page
//当前页
function
__construct($host,$name,$pass,$db,$type){
//构造函数初始化
$this->host=$host
$this->name=$name
$this->pass=$pass
$this->db=$db
$this->type=$type
$this->connect()
//调用连接数据库函数
}
//---------------------------------------------------------------------------------
function
connect(){
//定义连接数据库函数
$link=@mysql_connect($this->host,$this->name,$this->pass)or
die("连接数据源失败!错误原因:".mysql_error())
@mysql_select_db($this->db,$link)or
die("抱歉,您选择的数据库".$this->db."不存在!!!")
mysql_query("set
names
'$this->type'")
//防止出现乱码
}
//---------------------------------------------------------------------------------
function
query($sql){
//定义执行sql语句函数
$this->connect()
$rs=mysql_query($sql)
//执行给定的sql语句
return
$rs
//返回结果集
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)