1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
<?php
require_once(__DIR__ . '/../checkuser.php'); session_start(); //----------------------------------------------------------------------------- // Save if POST method //----------------------------------------------------------------------------- if (isPost()) { if (!$dbh->beginTransaction()) { throw new Exception('mysql begin transaction failure.'); } try { $post = $_POST;
$sql = "SELECT column_name FROM information_schema.columns WHERE table_schema = (SELECT DATABASE()) AND table_name = ?"; $parameters = array('sup_project'); if (!($sth = $dbh->prepare($sql))) { throw new Exception("sql prepare statement failure: $sql"); } $sth->setFetchMode(PDO::FETCH_ASSOC); if (!$sth->execute($parameters)) { throw new Exception("sql execute statement failure: $sql"); } $columns = $sth->fetchAll();
foreach ($columns as $column) { $column = $column['column_name']; if (isset($post[$column])) { $project[$column] = $post[$column]; } }
// Append record time $now = date("Y-m-d H:i:s"); $project = array_merge($project, array( 'lastupdate' => $now, 'lastupby' => $_SESSION['webadmin']['id'], ));
// Update project $values = array(); $parameters = array(); foreach ($project as $column => $value) { if ($column != 'id') { $parameters[] = !strlen($value) ? null : $value; $values[] = "`$column` = ?"; } }
$sql2 = "UPDATE sup_project SET " . implode(', ', $values) . " WHERE id = ?";
if (!($sth = $dbh->prepare($sql2))) { throw new Exception("sql prepare statement failure: $sql2"); } $sth->setFetchMode(PDO::FETCH_ASSOC); $parameters[] = $project['id']; if (!$sth->execute($parameters)) { throw new Exception("sql execute statement failure: $sql2"); }
$_SESSION["remark_project_id"] = $project['id'];
if (!$dbh->commit()) { throw new Exception('mysql commit transaction failure.'); }
} catch (Exception $exception) { if (!$dbh->rollBack()) { throw new Exception('mysql roll back transaction failure.'); } throw $exception; }
$project_id = (int)$_POST["id"];
redirectAndExit('index.php?message=Project Saved.'); }
|