批量插入数据库的sql拼接快捷函数
- 使用一次性生成多条insert语句,提高插入效率。
代码语言:javascript
复制class Format
{
/**
* 处理批量 insert sql
*
* @param $table
* @param array $data 二维数组键值对
* @return int|string
*/
public static function handleBatchInsertSql($table, $data)
{
$insertPrefix = 'INSERT INTO ' . $table . ' ';
//处理column
$columnsArr = array_keys($data[0]);
foreach ($columnsArr as $column) {
if (!is_string($column)) {
return 0;
}
}
$columns = '(`' . implode('`,`', $columnsArr) . '`) ';
//处理values
$valuesArr = [];
foreach ($data as $v) {
$sub = array_values($v);
$valuesArr[] = '("' . implode('","', $sub) . '")';
}
$values = ' VALUES ' . implode(',', $valuesArr);
return $insertPrefix . $columns . $values;
}
}
代码语言:javascript
复制 // 批量处理sql 一条sql处理
$data = [];
foreach ($categoryIds as $categoryId) {
$data[] = [
'customid' => $customId,
'categoryid' => $categoryId
];
}
$batchSql = Format::handleBatchInsertSql('category_permission', $data);
封装获取Raw格式request类,同时支持form-date
- 有的老项目不支持raw格式的获取封装,于是自己封装一个静态方法。
代码语言:javascript
复制class Request
{
/**
* 封装获取Raw格式request类,同时支持form-date
*
* @return false|mixed|string
*/
public static function getRaw()
{
$params = file_get_contents("php://input");
$paramsArr = json_decode($params, true);
if ($paramsArr) {
return $paramsArr;
}
parse_str($params, $arr);
if ($arr) {
return $arr;
}
return $params;
}
}
格式化参数,签名过程需要使用
代码语言:javascript
复制 /**
* 作用:格式化参数,签名过程需要使用
* key1=a&key2=b&key3=c
*
* @param $paraMap
* @param $urlencoded
* @return bool|string
*/
public static function formatBizQueryParaMap($paraMap, $urlencoded = '')
{
$buff = '';
ksort($paraMap);
foreach ($paraMap as $k => $v) {
if($urlencoded) {
$v = urlencode($v);
}
$buff .= $k . "=" . $v . "&";
}
$reqPar = '';
if (strlen($buff) > 0) {
$reqPar = substr($buff, 0, strlen($buff)-1);
}
return $reqPar;
}
/**
* 作用:格式化参数,签名过程需要使用
* a.b.c
*
* @param $paraMap
* @param string $urlencoded
* @return string
*/
public static function formatSimpleMap($paraMap, $urlencoded = '')
{
$buff = '';
ksort($paraMap);
foreach ($paraMap as $k => $v) {
if($urlencoded) {
$v = urlencode($v);
}
$buff .= $v;
}
return $buff;
}