怎样用PHP连接sql数据库

怎样用PHP连接sql数据库,第1张

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!"

class

connCls{

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

//返回结果集

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6843038.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-29
下一篇 2023-03-29

发表评论

登录后才能评论

评论列表(0条)

保存