database, "", "", array(PDO::ATTR_PERSISTENT => true));
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
switch ($op) {
case "sync":
{
$time = $_POST["time"];
$query = "select {$param->uuid} as guid, {$param->modify_time} from {$param->table} where {$param->receive_time} > '{$time}' limit 0,10000";
$stmt = $PDO->query($query);
$Fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
$iFetch = count($Fetch);
echo (json_encode($Fetch, JSON_UNESCAPED_UNICODE));
break;
}
case "get":
{
if (isset($_GET["id"])) {
$id = $_GET["id"];
} else if (isset($_POST["id"])) {
$id = $_POST["id"];
} else {
return (false);
}
$arrId = json_decode($id);
$queryId = "('";
foreach ($arrId as $one) {
$queryId .= $one . "','";
}
$queryId = substr($queryId, 0, -2) . ")";
$query = "SELECT * FROM {$param->table} WHERE {$param->uuid} in {$queryId}";
$stmt = $PDO->query($query);
$Fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo (json_encode($Fetch, JSON_UNESCAPED_UNICODE));
return (true);
break;
}
case "insert":
{
echo "正在准备插入记录
";
if (isset($_POST["data"])) {
$data = $_POST["data"];
} else {
echo "没有数据
";
return (false);
}
// 开始一个事务,关闭自动提交
$PDO->beginTransaction();
$query = "INSERT INTO {$param->table} (";
foreach ($param->insert as $row) {
$query .= "'" . $row . "',";
}
$query .= "'receive_time') VALUES ( ";
for ($i = 0; $i < count($param->insert); $i++) {
$query .= " ?, ";
}
$query .= " ? )";
$arrData = json_decode($data, true);
$stmt = $PDO->prepare($query);
foreach ($arrData as $oneParam) {
$newRow = array();
foreach ($param->insert as $row) {
$newRow[] = $oneParam["{$row}"];
}
$newRow[] = mTime();
$stmt->execute($newRow);
}
// 提交更改
$PDO->commit();
if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
$error = $PDO->errorInfo();
echo "error - $error[2]
";
return (false);
} else {
$count = count($arrData);
echo "INSERT $count recorders." . "
";
return (true);
}
break;
}
case "update":
{
echo "更在准备更新数据
";
if (isset($_POST["data"])) {
$data = $_POST["data"];
} else {
echo "没有输入数据
";
return (false);
}
$arrData = json_decode($data, true);
$query = "UPDATE {$param->table} SET ";
foreach ($param->update as $row) {
$query .= "{$row} = ? ,";
}
$query .= "{$param->receive_time} = ? where {$param->uuid} = ? ";
$stmt = $PDO->prepare($query);
// 开始一个事务,关闭自动提交
try {
$PDO->beginTransaction();
foreach ($arrData as $one) {
$newRow = array();
foreach ($param->update as $row) {
$newRow[] = $one["{$row}"];
}
$newRow[] = mTime();
$newRow[] = $one["{$param->uuid}"];
$stmt->execute($newRow);
}
// 提交更改
$PDO->commit();
if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
$error = $PDO->errorInfo();
echo "error - $error[2]
";
return (false);
} else {
$count = count($arrData);
echo "INSERT $count recorders." . "
";
return (true);
}
} catch (Exception $e) {
$PDO->rollback();
echo "Failed:" . $e->getMessage() . "
";
return (false);
}
break;
}
default:
break;
}
}