首页 > 编程技术 > php

php中使用sql server验证进行连接数据库

发布时间:2016-11-25 16:37

当您连接到 SQL Server 时,SQL Server Driver for PHP 支持 SQL Server 身份验证。 在使用 SQL Server 身份验证连接到 SQL Server 时必须考虑以下几点:

必须对服务器启用 SQL Server 混合模式身份验证。
在尝试建立连接时必须设置 UID 和 PWD 连接属性。UID 和 PWD 必须映射到有效的 SQL Server 用户和密码。
注意:

包含右大括号 (}) 的密码必须使用另一个右大括号进行转义。例如,如果 SQL Server 密码为“pass}word”,则 PWD 连接属性的值必须设置为“pass}}word”。
在使用 SQL Server 身份验证连接到 SQL Server 时应采取以下预防措施:
下面看一个简单的实例:

 代码如下 复制代码

<?php
$serverName = "(local)";
$uid = 'xxxx';
$pwd = 'xxxx';
$connectionInfo = array( "UID"=>$uid,
                         "PWD"=>$pwd,
                         "Database"=>"AdventureWorks");

$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
     echo "无法连接数据库.";
     die( print_r( sqlsrv_errors(), true));
}

$tsql = "SELECT CONVERT(varchar(32), SUSER_SNAME())";
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false )
{
     echo "查询错误.";
     die( print_r( sqlsrv_errors(), true));
}

$row = sqlsrv_fetch_array($stmt);
echo "登录的用户: ".$row[0];

sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>

本教程为php入门者提供的一篇关于php连接mysql数据库以及查询与读写mysql数据库的实现,有需要学习的同学可以参考一下下哦。

一、连接数据库

数据库变量文件:connectvars.php

 代码如下 复制代码
<?php
//服务器
define('DB_HOST', '127.0.0.1');
//用户名
define('DB_USER', 'root');
//密码
define('DB_PASSWORD', 'root');
//数据库
define('DB_NAME','test') ;
?>

在使用处连接数据库

 代码如下 复制代码

require_once 'connectvars.php';
$dbc =mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);

二、对数据库进行增、删、改、查

//查询、修改、删除操作都写成SQL语句

 代码如下 复制代码
$query = "SELECT * FROM toyota ORDER BY ID DESC";
//$data保存信息较为丰富,可用其判断是否操作成功,或利用其取数据,查询记录条数
$data = mysqli_query($dbc,$query);

三、判断操作是否成功

 代码如下 复制代码

if($data){
     echo '数据操作成功';
}else{
     echo '数据操作失败';
}

四、获得查询记录数目

 代码如下 复制代码

$count = mysqli_num_rows($data);
echo $count;

五、对记录进行循环操作

假设记录中有个字段为'url'

 代码如下 复制代码

while($row = mysqli_fetch_array($data)){
     echo $row['url'];
}

要实现本功能的条件是环境 mysql 5.2 /php 5 支持事务的table 类型 需要InnoDB ,有了这些条件你就可以做上面的实现了,这个事物回滚操作是大项目经常用到的,像银行,电子商务等都会用到,有需要的朋友可以参考一下。

近期项目软件升级到支持事务处理,做个示例供大家学习参考
环境 mysql 5.2 /php 5
支持事务的table 类型 需要InnoDB

 代码如下 复制代码

<?PHP
$LinkID =mysql_connect('localhost:3307','root',*******);
mysql_select_db('web_his',$LinkID);
mysql_query("set names utf8");

/* 创建事务 */
mysql_query('START TRANSACTION') or exit(mysql_error());
$ssql1="insert into pf_item values('22','我们','30')";  //执行sql 1
if(!mysql_query($ssql1)){
   echo $ssql1.mysql_errno().":".mysql_error()."<br>";
   mysql_query('ROLLBACK') or exit(mysql_error());//判断当执行失败时回滚
  
   exit;
}
$ssql1="insert into pf_item values('21','hell','10')";  //执行sql 2
if(!mysql_query($ssql1)){
  echo $ssql1.mysql_errno().":".mysql_error()."<br>";
     mysql_query('ROLLBACK') or exit(mysql_error());//判断当执行失败时回滚
  
   exit;
}

mysql_query('COMMIT') or exit(mysql_error());//执行事务

mysql_close($LinkID);
?>

本文章就分享一个简单的代码告诉你如何利用php来连接access数据库的方法,有需要的同学可以参考一下下哈。
 代码如下 复制代码
 <?php
$conn = new com("adodb.connection"); 
$connstr="driver={microsoft access driver (*.mdb)}; dbq=". realpath("data/db_database12_185.mdb");
$conn->open($connstr);
?>
phpexcel是一个php的插件,他是用来读取excel文档的,如果没有它的话自己要写个这样的工具比较麻烦,现在有了现成的excel读取插件方便了很多。

php对excel文件进行循环读取

php对字符进行ascii编码转化,将字符转为十进制数

php对excel日期格式读取,并进行显示转化

php对汉字乱码进行编码转化

 代码如下 复制代码

<?php

require_once 'PHPExcel.php';

/**对excel里的日期进行格式转化*/
function GetData($val){
    $jd = GregorianToJD(1, 1, 1970);
    $gregorian = JDToGregorian($jd+intval($val)-25569);
    return $gregorian;/**显示格式为  “月/日/年”  */
}

$filePath = 'test.xlsx';

$PHPExcel = new PHPExcel();

/**默认用excel2007读取excel,若格式不对,则用之前的版本进行读取*/
$PHPReader = new PHPExcel_Reader_Excel2007();
if(!$PHPReader->canRead($filePath)){
    $PHPReader = new PHPExcel_Reader_Excel5();
    if(!$PHPReader->canRead($filePath)){
        echo 'no Excel';
        return ;
    }
}

$PHPExcel = $PHPReader->load($filePath);
/**读取excel文件中的第一个工作表*/
$currentSheet = $PHPExcel->getSheet(0);
/**取得最大的列号*/
$allColumn = $currentSheet->getHighestColumn();
/**取得一共有多少行*/
$allRow = $currentSheet->getHighestRow();
/**从第二行开始输出,因为excel表中第一行为列名*/
for($currentRow = 2;$currentRow <= $allRow;$currentRow++){
    /**从第A列开始输出*/
    for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){
        $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();/**ord()将字符转为十进制数*/
        if($currentColumn == 'A')
        {
            echo GetData($val)."t";
        }else{
            //echo $val;
            /**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将gb2312编码转为utf-8编码输出*/
            echo iconv('utf-8','gb2312', $val)."t";
        }
    }
    echo "</br>";
}
echo "n";
?>

标签:[!--infotagslink--]

您可能感兴趣的文章: