获取数据库连接
$mssql_connection = '';
function open_mssqlconn()
{
global $mssql_connection;
// global $MSSQL_SERVER;
// global $connectionInfo;
$MSSQL_SERVER = "DESKTOP-CA04H1Q\SQLEXPRESS";
$connectionInfo = array("Database" => "ToncentHuaJie", "UID" => "sa", "PWD" => "123456");
if (!$mssql_connection) {
$mssql_link = sqlsrv_connect($MSSQL_SERVER, $connectionInfo);
// sqlsrv_query("set NAMES GBK");
if (!$mssql_link) {
echo "Could not connect.\n";
die(print_r(sqlsrv_errors(), true));
}
return $mssql_link;
} else {
return $mssql_connection;
}
}
增删改查方法编码实现
////////////////////////////////查询////////////////////////////////
1)编写SQL语句
$Q=“select * from User”
2)调用方法执行SQL
function mssqlquery($Q) { global $mssql_connection; if (!$mssql_connection) { $mssql_connection = open_mssqlconn(); } $Q = iconv("utf-8", "gbk", $Q); $cursor = sqlsrv_query($mssql_connection, $Q); if (!$cursor) { echo "SQL查询出错.\n"; die(print_r(sqlsrv_errors(), true)); } return $cursor; }
3).解析结果
$cursor = mssqlquery($sql); while ($row = sqlsrv_fetch_array($cursor, SQLSRV_FETCH_ASSOC)) { $result[] = array( 'HUL_ID' => $row["HUL_ID"], // 主键id 'SFD_Name' => iconv("GBK", "UTF-8", $row["SFD_Name"]),// 所属部门名称 'SFD_ID' => $row["SFD_ID"],//所属部门id 'SFU_Name' => iconv("GBK", "UTF-8", $row["SFU_Name"]),// 姓名名称 'SFU_ID' => $row["SFU_ID"],// 姓名id 'HAL_Name' => iconv("GBK", "UTF-8", $row["HAL_Name"]),// 级别名称 'HAL_ID' => $row['HAL_ID'],// 级别名称id 'HAT_Name' => iconv("GBK", "UTF-8", $row["HAT_Name"]),// 所属考核类别名称 'HAT_ID' => $row["HAT_ID"],// 所属考核类别id 'HAE_Name' => iconv("GBK", "UTF-8", $row["HAE_Name"]), //考核范围名称 'HUL_Level' => $row["HUL_Level"],//考核范围id ); } /////////////////////////////封装删除数据方法///////////////////////////// function delete_db1($table, $where) { global $mssql_connection; if (!$mssql_connection) { $mssql_connection = open_mssqlconn(); } $wheresql = ''; foreach ($where as $key => $val) { $wheresql .= empty($wheresql) ? " $key = '$val' " : " AND $key = '$val'"; } $sql = "DELETE FROM $table WHERE $wheresql"; $cursor = sqlsrv_query($mssql_connection, $sql); return sqlsrv_rows_affected($cursor); }
////////////////////////////////////////////////封装插入数据库方法//////////////////////////////////////////////////////////////
function insert_db1($table, $data, $replace = false) { global $mssql_connection; if (!$mssql_connection) { $mssql_connection = open_mssqlconn(); } $keysql = $valsql = ''; foreach ($data as $key => $val) { $keysql .= empty($keysql) ? $key : ", $key"; if ($val == '') { // echo 'aaa '; $valsql .= empty($valsql) ? "null" : ", null"; } else { // echo 'ccc '; $valsql .= empty($valsql) ? "'$val'" : ", '$val'"; } } $method = $replace ? 'REPLACE' : 'INSERT'; $sql = "$method INTO $table ($keysql) VALUES ($valsql)"; $sql = stripslashes($sql); //去除特殊字符串前面的反斜杠 $sql = iconv("utf-8", "gbk", $sql); //PHP使用UTF-8编码。SQL Server 2008使用默认的GBK编码 在执行查询语句之前将查询语句及所要插入的数据转化为GBK编码。 // $sql="insert into $table (PMP_ID) values ('002')"; // echo $sql.'</br>'; // sqlsrv_query($mssql_connection,$sql); $cursor = sqlsrv_query($mssql_connection, $sql); return sqlsrv_rows_affected($cursor); }
////////////////////////////////////////////////封装修改数据库数据方法//////////////////////////////////////////////////////////////
function update_db1($table, $value, $where) { global $mssql_connection; if (!$mssql_connection) { $mssql_connection = open_mssqlconn(); } // echo 'bb'; $updatesql = $wheresql = ''; foreach ($value as $key => $val) { if ($val == '') { $val = null; $updatesql .= empty($updatesql) ? " $key = null" : ", $key = null"; // echo 'eee '; } else { $val = str_replace("'", "''", $val); $updatesql .= empty($updatesql) ? " $key = '" . $val . "'" : ", $key = '" . $val . "'"; // echo 'fff '; } } foreach ($where as $key => $val) { $wheresql .= empty($wheresql) ? " $key = '" . $val . "' " : " AND $key = '" . $val . "'"; } $sql = "UPDATE $table SET $updatesql WHERE $wheresql"; $sql = stripslashes($sql); //去除特殊字符串前面的反斜杠 $sql = iconv("utf-8", "gbk", $sql); //PHP使用UTF-8编码。SQL Server 2008使用默认的GBK编码 在执行查询语句之前将查询语句及所要插入的数据转化为GBK编码。 // echo $table; // echo $sql; $cursor = sqlsrv_query($mssql_connection, $sql); return sqlsrv_rows_affected($cursor); }
附 运用封装方法新增修改例子
//主表id $HUL_ID = getGp('HUL_ID', 'P'); //主表参数 $SFU_ID = $_POST["SFU_ID"]; $SFD_ID = $_POST["SFD_ID"]; $HAL_ID = $_POST["HAL_ID"]; $HAT_ID = $_POST["HAT_ID"]; $HUL_Type = $_POST["HUL_Type"]; $HUL_Level = $_POST["HUL_Level"]; if ($HUL_ID == '') { $HUL_ID = create_ID('HR_AssessUserLevel'); $HR_AssessUserLevel = array( 'HUL_ID' => $HUL_ID, 'SFU_ID' => $SFU_ID, 'SFD_ID' => $SFD_ID, 'HAL_ID' => $HAL_ID, 'HAT_ID' => $HAT_ID, 'HUL_Type' => 'BKH', //该模块默认为类型BKH 'HUL_Level' => $HUL_Level, ); insert_db1('HR_AssessUserLevel', $HR_AssessUserLevel); echo '数据存储成功'; } else { $HR_AssessUserLevel = array( 'SFU_ID' => $SFU_ID, 'SFD_ID' => $SFD_ID, 'HAL_ID' => $HAL_ID, 'HAT_ID' => $HAT_ID, 'HUL_Type' => 'BKH', //该模块默认为类型BKH 'HUL_Level' => $HUL_Level, ); update_db1('HR_AssessUserLevel', $HR_AssessUserLevel, array('HUL_ID' => $HUL_ID)); echo '数据更新成功'; }
//PHP使用UTF-8编码。SQL Server 2008使用默认的GBK编码 在执行查询语句之前
将查询语句及所要插入的数据转化为GBK编码。