php 连接mssql 数据库配置与演示代码

 更新时间:2016年11月25日 16:38  点击:1467
打开PHP配置文件php.ini,找到;extension=php_mssql.dll把前面的分号去掉。 2、找到mssql.secure_connection = Off修改成 mssql.secure_connection = On。 3、把PHP文件夹下的php_mssql.dll和ntwdblib.DLL这两个文件拷贝到C:windowssystem32文件夹下

 ----在这里,复制ntwdblib.dll到c:windowssystem32下是失败,原因是该目录下已经存在该dll文件啦.

我重启apache,

*/
$hostname="10.4.250.20"; 
$dbuser="hr"; 
$dbpasswd="946138"; 
$dbname="hr"; 
$conn = mssql_connect($hostname,$dbuser,$dbpasswd) or die("数据库连接错误!"); 
mssql_select_db($dbname,$conn); 
$sql = " select * from pip_staff_s where cstaffid ='z797' "; 
$rowset=mssql_query($sql,$conn); 
$rowcnt=mssql_num_row($rowset);
echo " rows ";
echo $rowset;
echo " end ";

像这种php读取sql文件导入数据库情况,用得最多的就是数据库备份与还原来了,原理很简单按指定格式导入成.sql文件或利用phpmyadmin导出都可以用本程序来实现导入哦。
 代码如下 复制代码

function into_sql($file)
{
   global $mysql教程_host,$mysql_user,$mysql_password,$mysql_db,$mysql_table_prefix,$dbcharset;//获取数据库配置信息
    mysql_connect($mysql_host,$mysql_user,$mysql_password);
    mysql_select_db($mysql_db);

    if( mysql_get_server_info() < '4.1' )
    //返回 link_identifier 所使用的服务器版本。如果省略 link_identifier,则使用上一个打开的连接。
    {
        $dbcharset='';//设置字符集,如果mysql版本低于4.1,则不设置字符集信息
    }
 if(empty($dbcharset))
 {
  $dbcharset='gbk';
 }
    $dbcharset && mysql_query("set names '$dbcharset'");// 设置字符集
    if( mysql_get_server_info() > '5.0' )
    {
        mysql_query("set sql_mode=''");
    }
    $file2=file_get_contents($file);
 $file2=iconv("utf-8","gbk",$file2);
    $file2=str_replace("seo教程_",$mysql_table_prefix,$file2);//将文件中数据库表前缀换成用户设定的前缀
 
    $file2=explode("n",$file2);//将文件内容按行读入到数组
    $c1=count($file2);
    for($j=0;$j<$c1;$j++)
    {
        $ck=substr($file2[$j],0,4);//取每行的前4个字符
        if( ereg("#",$ck)||ereg("--",$ck) )//去掉注释
        {
            continue;
        }
        $arr[]=$file2[$j];//将去掉注释的文件内容按行读入数组$arr,数组每个元素对应一行
    }
    $read=implode("n",$arr); //重新组织文件内容到一个字符串,(按照原来分好的一行一行的)
    $sql=str_replace("r",'',$read);//去掉"r(回车符)"
    $detail=explode(";n",$sql);
    //将经上述整理过的文件内容再次按一条完整的sql语句(以;和n分隔)导入到数组$detail,
    //此时数组detail的每个元素对应一条完整的sql语句
    $count=count($detail);
    for($i=0;$i<$count;$i++)
    {
        $sql=str_replace("r",'',$detail[$i]);//去掉每行sql中的回车符
        $sql=str_replace("n",'',$sql);//去掉换行符
        $sql=trim($sql);//去掉前后空格
        //现在的$sql
        if($sql)
        {
            if(eregi("create table",$sql))//如果当前的sql语句是创建新表,则考虑版本兼容,以及重设字符集
            {
                //$mysqlv=mysql_get_server_info();
                $sql=preg_replace("/default charset=([a-z0-9]+)/is","",$sql);//去除原来的字符集设置信息
                $sql=preg_replace("/type=myisam/is","engine=myisam",$sql);
                if($dbcharset)
                {
                    $sql=str_replace("engine=myisam"," engine=myisam default charset=$dbcharset ",$sql);
                }
                if(mysql_get_server_info()<'4.1')
                {
                    $sql=preg_replace("/engine=myisam/is","type=myisam",$sql);//
                }
            }
            mysql_query($sql);
        }
    }
}

?>

文章提供一款备份还原函数这是利用php写的可以备份也可以还原的函数,同时也支持备份后保存到本地的代码哦,好了下面看源码。

//备份还原函数

 代码如下 复制代码

function write_file($sql,$filename) {
    $re=true;
    if(!@$fp=fopen("./www.111cn.net/".$filename,"w+")) {$re=false; echo "failed to open target file";}
    if(!@fwrite($fp,$sql)) {$re=false; echo "failed to write file";}
    if(!@fclose($fp)) {$re=false; echo "failed to close target file";}
    return $re;
}
function down_file($sql,$filename){
 ob_end_clean();
 header("content-encoding: none");
 header("content-type: ".(strpos($_server['http_user_agent'], 'msie') ? 'application/octetstream' : 'application/octet-stream'));

 header("content-disposition: ".(strpos($_server['http_user_agent'], 'msie') ? 'inline; ' : 'attachment; ')."filename=".$filename);

 header("content-length: ".strlen($sql));
 header("pragma: no-cache");

 header("expires: 0");
 echo $sql;
 $e=ob_get_contents();
 ob_end_clean();
}

function writeable($dir){
 if(!is_dir($dir)) {
     @mkdir($dir, 0777);
 }
 if(is_dir($dir)){
        if($fp = @fopen("$dir/test.test", 'w')){
            @fclose($fp);
            @unlink("$dir/test.test");
            $writeable = 1;
        }else {
            $writeable = 0;
     }
    }
 return $writeable;
}

function make_header($table){
    global $db;
    $sql="drop table if exists `".$table."`; ";
    $db->query("show create table ".$table);
    $db->nextrecord();
    $tmp=preg_replace("/ /","",$db->f("create table"));
    $sql.=$tmp."; ";
    return $sql;
}

function make_record($table,$num_fields){
    global $db;
    $comma="";
    $sql .= "insert into ".$table." values(";
    for($i = 0; $i < $num_fields; $i++)
    {$sql .= ($comma."'".mysql教程_escape_string($db->record[$i])."'"); $comma = ",";}
    $sql .= "); ";
    return $sql;
}

function show_msg($msgs){
    $i=0;
    $tm1="<table width='100%' border='0'  cellpadding='0' cellspacing='1'><tr><td><font color='red'><b>提示信息:</b></font></td></tr><tr><td><ul>";
    while (list($k,$v)=each($msgs)){
        $i=$i+1;
        $t1="<li>$i.".$v."</li>";
        $t=$t.$t1;
    }
    $tm2="</ul></td></tr></table>";
    return $tm1.$t.$tm2;
}

function pageend(){
    exit();
}

function import($fname) {
    global $db;
    $sqls=file($fname);
        foreach($sqls as $sql){
        str_replace(" ","",$sql);
        str_replace(" ","",$sql);
        if(!$db->query(trim($sql))) return false;
 }
    return true;
}
?>

本款是利用php mysql 数据库操作类函数,他可以删除,修改,增加,备份等对数据库的操作哦,同时还支持两种数据库连接方式 哦,以前数据库编码等的设置。
 代码如下 复制代码

class dbstuff {
 var $querynum = 0;
 var $link;
    var $sqlid;
    var $record;
    var $dbcharset='utf-8';
    var $charset='utf-8';
 function connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $halt = true) {
  if($pconnect) {
   if(!$this->link = @mysql_pconnect($dbhost, $dbuser, $dbpw)) {
    $halt && $this->halt('can not connect to mysql server');
   }
  } else {
   if(!$this->link = @mysql_connect($dbhost, $dbuser, $dbpw, 1)) {
    $halt && $this->halt('can not connect to mysql server');
   }
  }

  if($this->version() > '4.1') {
   global $charset, $dbcharset;
   if(!$dbcharset && in_array(strtolower($charset), array('gbk', 'big5', 'utf-8'))) {
    $dbcharset = str_replace('-', '', $charset);
   }

   if($dbcharset) {
    @mysql_query("set character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary", $this->link);
   }

   if($this->version() > '5.0.1') {
    @mysql_query("set sql_mode=''", $this->link);
   }
  }

  if($dbname) {
   @mysql_select_db($dbname, $this->link);
  }

 }

 function select_db($dbname) {
  return mysql_select_db($dbname, $this->link);
 }

 function fetch_array($query, $result_type = mysql_assoc) {
  return mysql_fetch_array($query, $result_type);
 }

 function query($sql, $type = '') {
  global $debug, $discuz_starttime, $sqldebug, $sqlspenttimes;

  $func = $type == 'unbuffered' && @function_exists('mysql_unbuffered_query') ?
   'mysql_unbuffered_query' : 'mysql_query';
  if(!($query = $func($sql, $this->link))) {
   if(in_array($this->errno(), array(2006, 2013)) && substr($type, 0, 5) != 'retry') {
    $this->close();
    $this->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect);
    $this->query($sql, 'retry'.$type);
   } elseif($type != 'silent' && substr($type, 5) != 'silent') {
    $this->halt('mysql query error', $sql);
   }
  }

  $this->querynum++;
        $this->sqlid=$query;
  return $query;
 }

 function affected_rows() {
  return mysql_affected_rows($this->link);
 }

 function error() {
  return (($this->link) ? mysql_error($this->link) : mysql_error());
 }

 function errno() {
  return intval(($this->link) ? mysql_errno($this->link) : mysql_errno());
 }

 function result($query, $row) {
  $query = @mysql_result($query, $row);
  return $query;
 }

    function result_first($sql) {
  return $this->result($this->query($sql), 0);
 }

 function num_rows($query) {
  $query = mysql_num_rows($query);
  return $query;
 }

 function num_fields($query) {
  return mysql_num_fields($query);
 }

 function free_result($query) {
  return mysql_free_result($query);
 }

 function insert_id() {
  return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("select last_insert_id()"), 0);
 }

 function fetch_row($query) {
  $query = mysql_fetch_row($query);
  return $query;
 }

 function fetch_fields($query) {
  return mysql_fetch_field($query);
 }

 function version() {
  return mysql_get_server_info($this->link);
 }

 function close() {
  return mysql_close($this->link);
 }

    function nr($sql_id="") {
        if(!$sql_id) $sql_id=$this->sqlid;
     return mysql_num_rows($sql_id);
    }

    function nf($sql_id="") {
        if(!$sql_id) $sql_id=$this->sqlid;
        return mysql_num_fields($sql_id);
    }

    function nextrecord($sql_id="") {
        if(!$sql_id) $sql_id=$this->sqlid;
        if($this->record=mysql_fetch_array($sql_id))  return $this->record;
        else return false;
    }

    function f($name) {
        if($this->record[$name]) return $this->record[$name];
        else return false;
    }

    function lock($tblname,$op="write") {
        if(mysql_query("lock tables ".$tblname." ".$op)) return true;
        else return false;
    }

    function unlock()
        {if(mysql_query("unlock tables")) return true; else return false;}

    function ar() {
        return @mysql_affected_rows($this->link);
    }

    function i_id() {
            return mysql_insert_id();
    }

 function halt($message = '', $sql = '') {
  define('cache_forbidden', true);
  include('db_mysql_error.inc.php');
 }
}

?>

sqlite 数据库连接类就是利用了php 与sqlite进行连接操作。
 代码如下 复制代码

 */
class db_class {
 var $conn=null;
 var $querynum = 0;

 /**
  * 数据库连接,返回数据库连接标识符
  *
  * @param string $ 数据库服务器主机
  * @param string $ 数据库服务器帐号
  * @param string $ 数据库服务器密码
  * @param string $ 数据库名
  * @param bool $ 是否保持持续连接,1为持续连接,0为非持续连接
  * @return link_identifier $dbuser, $dbpw, $dbname,
  */
 function connect($dbhost, $pconnect = 0) {
  $error = '';
  $func = $pconnect == 1 ? 'sqlite_popen' : 'sqlite_open';
  if (!$this -> conn = $func($dbhost, 0666, $error)) {
   $this -> halt($error);
  }

  return $this -> conn;
 }

 /**
  * 执行sql语句
  *
  * @param string $ sql语句
  * @param string $ 默认为空,可选值为 cache unbuffered
  * @param int $ cache以秒为单位的生命周期
  * @return resource
  */
 function query($sql , $type = '' , $expires = 3600, $dbname = '') {
  $error = '';
  $func = $type == 'unbuffered' ? 'sqlite_unbuffered_query' : 'sqlite_query';
  if (preg_match("/^s*select/i", $sql)) {
   $query = $func($this -> conn, $sql, sqlite_assoc, $error);
  } else {
   $query = sqlite_exec($this -> conn, $sql, $error);
  }
  if ($error) {
   $this -> halt($error, $sql);
  }

  $this -> querynum++;
  return $query;
 }
 /*
 *@param string $ table名
 *@param string $ where条件
 *@param string $ colum名
 
 *@param string $ limit数量 
 
 */
 function getlist($table , $wheres = "1=1",  $colums = '*' ,$limits = '3000',$orderbys="id desc") {
  $query = $this -> query("select ".$colums." from ".$table." where ".$wheres." order by  ".$orderbys."  limit ".$limits, $type, $expires, $dbname);
  while($rs = $this -> fetch_array($query)){
   $datas[]=$rs;
   }
  //print_r("select ".$colums." from ".$table." where ".$wheres." limit ".$limits);
  //print_r($rs);die();
  $this -> free_result($query);
  return $datas ;
 }
 function add_one($table , $colums ,$data ) {
  //die("insert into ".$table." (".$colums.") values(".$data.")");
  $query = $this -> query("insert into ".$table." (".$colums.") values(".$data.")", $type, $expires, $dbname);
  //return $this->insert_id();
  return $query;
 }
 function delist($table , $idarray,$wheres="no") {
  if($wheres=='no')
   $query = $this -> query("delete from ".$table." where id in(".$idarray.")", $type, $expires, $dbname);
  else
   $query = $this -> query("delete from ".$table." where ".$wheres, $type, $expires, $dbname);
  return $query;
 }
 function updatelist($table , $updatedata,$idarray) {
  $query = $this -> query("update ".$table." set ". $updatedata."  where id in(".$idarray.")", $type, $expires, $dbname);
  return $query;
 }
 //update max_vote set maxtitle='$title',maxban='$ban',
 /**
  * 执行sql语句,只得到一条记录
  *
  * @param string $ sql语句
  * @param string $ 默认为空,可选值为 cache unbuffered
  * @param int $ cache以秒为单位的生命周期
  * @return array
  */
 function get_one($sql, $type = '', $expires = 3600, $dbname = '') {
  $query = $this -> query($sql, $type, $expires, $dbname);
  $rs = $this -> fetch_array($query);
  $this -> free_result($query);
  return $rs ;
 }

 /**
  * 从结果集中取得一行作为关联数组
  *
  * @param resource $ 数据库查询结果资源
  * @param string $ 定义返回类型
  * @return array
  */
 function fetch_array($query, $result_type = sqlite_assoc) {
  return sqlite_fetch_array($query, $result_type);
 }

 /**
  * 取得前一次 sqlite操作所影响的记录行数
  *
  * @return int
  */
 function affected_rows() {
  return sqlite_changes($this -> conn);
 }

 /**
  * 取得结果集中行的数目
  *
  * @return int
  */
 function num_rows($query) {
  return sqlite_num_rows($query);
 }

 /**
  * 返回结果集中字段的数目
  *
  * @return int
  */
 function num_fields($query) {
  return sqlite_num_fields($query);
 }

 /**
  *
  * @return array 备用,一般不用.
  */
 function result($query, $row) {
  return @sqlite_fetch_all($query, sqlite_assoc);
 }
 /**
  * sqlite没有相应函数
  */
 function free_result($query) {
  return ;
 }

 /**
  * 取得上一步 insert 操作产生的 id
  *
  * @return int
  */
 function insert_id() {
  return sqlite_last_insert_rowid($this -> connid);
 }

 /**
  *
  * @return array 只得到数字索引
  */
 function fetch_row($query) {
  return sqlite_fetch_array($query, sqlite_num);
 }
 /**
  */
 function fetch_assoc($query) {
  return $this -> fetch_array($query, sqlite_assoc);
 }
 /**
  *
  * @return string
  */
 function version() {
  return sqlite_libversion();
 }

 function close() {
  return sqlite_close($this -> conn);
 }

 /**
  *
  * @return string
  */
 function error() {
  return sqlite_error_string($this -> errno);
 }

 /**
  *
  * @return int
  */
 function errno() {
  return sqlite_last_error($this -> conn);
 }

 /**
  * 显示mysql教程错误信息
  */
 function halt($message = '', $sql = '') {
  exit("sqlitequery:$sql <br> sqliteerror:" . $this -> error() . " <br> sqliteerrno:" . $this -> errno() . " <br> message:$message");
 }
}

?>

 

[!--infotagslink--]

相关文章

  • PHP 数据库缓存Memcache操作类

    操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • php简单数据操作的实例

    最基础的对数据的增加删除修改操作实例,菜鸟们收了吧...2013-09-26
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • 解决Mybatis 大数据量的批量insert问题

    这篇文章主要介绍了解决Mybatis 大数据量的批量insert问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-09
  • Antd-vue Table组件添加Click事件,实现点击某行数据教程

    这篇文章主要介绍了Antd-vue Table组件添加Click事件,实现点击某行数据教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-17
  • 详解如何清理redis集群的所有数据

    这篇文章主要介绍了详解如何清理redis集群的所有数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-18
  • Intellij IDEA连接Navicat数据库的方法

    这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
  • 在数据库里将毫秒转换成date格式的方法

    在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • vue 获取到数据但却渲染不到页面上的解决方法

    这篇文章主要介绍了vue 获取到数据但却渲染不到页面上的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-19
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • 如何解决局域网内mysql数据库连接慢

    通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
  • MySQL快速复制数据库数据表的方法

    某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
  • php把读取xml 文档并转换成json数据代码

    在php中解析xml文档用专门的函数domdocument来处理,把json在php中也有相关的处理函数,我们要把数据xml 数据存到一个数据再用json_encode直接换成json数据就OK了。...2016-11-25
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • mybatis-plus 处理大数据插入太慢的解决

    这篇文章主要介绍了mybatis-plus 处理大数据插入太慢的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-18