<?php
ob_start();
session_start();
header('content-type:text/html;charset=gbk');
define('DB_HOST','127.0.0.1');
define('DB_USER','sa');
define('DB_PASS','123456');
define('DB_DATA','mytest');
define('DB_TablePre','site_');
define('CO_SitePath','/');
class dbo{
private $Host; //连接数据库服务器
private $Database;//连接数据库主机名
private $UID; //连接数据库用户名
private $PWD; //连接数据库密码
/**
* @author XL
*析构函数,完成数据成员的初始化
*/
function __construct(){
$this->Host = constant("DB_HOST");
$this->Database = constant("DB_DATA");
$this->UID = constant("DB_USER");
$this->PWD = constant("DB_PASS");
$this->con = $this->conn();
}
public function conn(){
$Host = $this->Host;
$db_info=array("Database"=>$this->Database,"UID"=>$this->UID,"PWD"=>$this->PWD);
if($link=sqlsrv_connect($Host,$db_info))
{
return $link;
}else {
//print_r($Host);
//print_r($db_info);exit;
$this->err('数据库连接错误');
}
}
/**
* @author XL
*执行select查询
*@param unknown $tables
*@param string $fields
*@param string $where
*@param string $group
*@param string $having
*@param string $order
*@return Ambigous <unknown, unknown, multitype:>
*
*/
public function fun_select($tables,$fields='*',$where=NULL,$group=NULL,$having=NULL,$order=NULL){
$sql='SELECT '.$fields.' FROM ['.DB_TablePre.$tables.']'
.$this->parseWhere($where)
.$this->parseGroup($group)
.$this->parseHaving($having)
.$this->parseOrder($order);
$query = sqlsrv_query($this->con,$sql);
//echo $dataAll[1];
while($row = sqlsrv_fetch_array($query,SQLSRV_FETCH_ASSOC))
{
$arr[] = $row;
}
return $arr;
}
/**
* @author XL
*添加记录的操作*
*@param string $table
*@param array $dataArray
*@return Ambigous <boolean, unknown, number>
*/
public function fun_add($tables,$dataArray){
if (is_array($dataArray)&&!empty($tables)){
$keys=array_keys($dataArray);//将$dataArray[]的索引取出组成一个数组
$keys=join(',', $keys);
$values=array_values($dataArray);//将$dataArray[]的数值取出组成一个数组
$values=join('\',\'', $values);
//$values="'".$values."'";
$values = "'".iconv('UTF-8','GB2312',$values)."'";
$tables = DB_TablePre.$tables;
$sql="INSERT {$tables} ({$keys}) VALUES({$values})";
$t = $this->execute($sql);
if($t){
$query = sqlsrv_query($this->con,'SELECT @@identity AS id');
$row = sqlsrv_fetch_array($query);
return $row[0];
}else{
return false;
}
}else {
$this->err('没有要插入的数据');
return false;
}
}
/**
* @author XL
*更新记录的操作
*@param string $table
*@param array $data
*@param string $where
*@param string $order
*@return Ambigous <boolean, unknown, number>
*/
public function fun_update($tables,$data,$where,$order=null){
if (is_array($data)&&!empty($where)){
foreach ($data as $key=>$val){
$val = iconv('UTF-8','GB2312',$val);
$sets.=$key."='".$val."',";
}
$sets=rtrim($sets,',');
$tables = DB_TablePre.$tables;
$sql="UPDATE {$tables} SET {$sets} ".$this->parseWhere($where).$this->parseOrder($order);
return $this->execute($sql);
}else {
return false;
}
}
/**
* @author XL
*删除记录的操作
*@param string $table
*@param string $where
*@param string $order
*@return Ambigous <boolean, unknown, number>
*/
public function fun_delete($tables,$where,$order=NULL){
if (is_string($where)&&!empty($where)){
$tables = DB_TablePre.$tables;
$sql="DELETE FROM {$tables}".$this->parseWhere($where).$this->parseOrder($order);
return $this->execute($sql);
}
return false;
}
/**
* @author XL
* 解析Where条件
* @param string $where
* @return string
*/
public function parseWhere($where){
$whereStr='';
if (is_string($where)&&!empty($where)){
$whereStr=$where;
}
return empty($whereStr)?'':' WHERE '.$whereStr;
}
/**
* @author XL
* 解析group by条件
* @param unknown $group
* @return string
*/
public function parseGroup($group) {
$groupStr = '';
if (is_array ( $group )) { //判断$group是否为数组,并进行解析
$groupStr .= ' GROUP BY ' . implode ( ',', $group );
}
elseif (is_string ( $group ) && ! empty ( $group )) { //判断$group是否为字符串,并进行解析
$groupStr .= ' GROUP BY ' . $group;
}
return empty( $groupStr ) ? '' : $groupStr;
}
/**
* @author XL
* 解析Having by子句,对分组结果进行二次筛选
* @param string $having
* @return string
*/
public function parseHaving($having){
$havingStr='';
if (is_string($having)&&!empty($having)){
$havingStr.=' HAVING '.$having;
}
return $havingStr;
}
/**
* @author XL
* 解析Order by子句
* @param unknown $order
* @return string
*/
public function parseOrder($order){
$orderStr='';
if (is_array($order)){
$orderStr.=' ORDER BY '.join(',', $order).'';
}elseif (is_string($order)&&!empty($order)){
$orderStr.=' ORDER BY '.$order.'';
}
return $orderStr;
}
/**
* @author XL
*将sql语句进行预处理
*/
public function execute($sql = NULL){
$link = $this->con;
if (!$link) {
return false;
}
if (!empty ($sql)){
$queryStr = sqlsrv_prepare($link,$sql);
$res = sqlsrv_execute($queryStr);
return $res;
}
}
/**
* @author XL
*错误提示信息
*/
public function err($msg) {
if (!empty($msg)){
//echo "<script>alert('".$msg."')<script>";
echo $msg;
die();
}
}
// 获得客户端真实的IP地址
public function getip(){
if ($_SERVER["HTTP_X_FORWARDED_FOR"]) $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
elseif ($_SERVER["HTTP_CLIENT_IP"]) $ip = $_SERVER["HTTP_CLIENT_IP"];
elseif ($_SERVER["REMOTE_ADDR"]) $ip = $_SERVER["REMOTE_ADDR"];
elseif (getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR");
elseif (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP");
elseif (getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR");
else $ip = NULL;
return $ip;
}
//关闭数据库
public function close(){sqlsrv_close($this->con);}
}
class DB{
var $con = null;
function __construct($dbhost,$dbuser,$dbpass,$dbname) {
$connectionInfo = array("UID"=>$dbuser,"PWD"=>$dbpass,"Database"=>$dbname);
$this->con = sqlsrv_connect($dbhost,$connectionInfo);
}
function query($sql){
$result = sqlsrv_query($this->con, $sql);
}
function getRow($sql){
$result = sqlsrv_query($this->con, $sql);
$arr = array();
while($row = sqlsrv_fetch_array($result))
{
$arr[] = $row;
}
return $arr[0];
}
function getAll($sql){
$result = sqlsrv_query($this->con, $sql);
$arr = array();
while($row = sqlsrv_fetch_array($result))
{
$arr[] = $row;
}
return $arr;
}
function __destruct(){
unset($con);
}
}
define('DB_HOST','localhost');
define('DB_USER','sa');
define('DB_PASS','123456');
define('DB_NAME','mytest');
//$db = new DB(DB_HOST, DB_USER, DB_PASS, DB_NAME);
//$sql = "select * from site_mytable";
//$orders_add_list = $db-
PHP+MSSQL链接代码-亲测可用,带数据库
5星 · 超过95%的资源 需积分: 10 68 浏览量
2017-08-04
15:34:50
上传
评论
收藏 163KB RAR 举报
Gkey老白
- 粉丝: 2
- 资源: 4