PHP链接SQLserver数据库案例,涉及所有php和sqlserver链接失败的问题(原创)

php编程通常是utf-8编码,php与mysql数据库原本就是WAMP的原生配对,所以连接很容易。而实际项目中可能涉及php连接sqlserver数据库,通常都会连接不成功,由于sqlserver通常是gdk936编码,与php程序代码的utf-8编码之间就需要进行转码,不然就无法获取数据库中想要的数据。这是我实际学习中,用php连接sqlserver数据库,花费了我不好时间。终于成功传递中文字符串到sqlserver数据库,并通过数组的形式返回。贴出代码,希望对遇到php连接sqlserv数据问题的同行学习参考。

$query = iconv("utf-8", "gbk", $query);
eval('return '.iconv("GB2312//IGNORE", "UTF-8", var_export($arr,true)).';');
$uid = "sa"; //数据库用户名
$pwd = "1234"; //数据库密码
$db  = "Resdc"; // 数据库名
$connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>$db);
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn == false) {
    echo "连接失败!";
    die( print_r( sqlsrv_errors(), true));
}


//执行有结果集的SQL语句
$action=$_GET[action]; 
$id=strval($_GET[id]);                //因为传递的参数为中文参数,即为字符串,所以用strval,若传递的是数值,即用intval()
$id = (iconv('UTF-8','GBK',$id));     //将页面上utf8编码先转成GBK
if($action=="getlink"){
$query= sqlsrv_query($conn, "select * from resdc where dataname ='$id'");
$row = sqlsrv_fetch_array($query) ;
$list=array("name1"=>$row[download]); 
echo json_encode($list);
//print_r($row);


}
?>

你可能感兴趣的:(PHP链接SQLserver数据库案例,涉及所有php和sqlserver链接失败的问题(原创))