public function insertRow($table, $data) { try { $data["modified"] = date("Y-m-d H:i:s"); if (isset($data["id"])) { // UPDATE $query = ""; foreach (array_keys($data) as $key) { if ($key == "id") { continue; } if (!empty($query)) { $query .= ", "; } $query .= "{$key} = :{$key}"; } $query = "UPDATE {$table} SET {$query} WHERE id = :id"; $stmt = $this->db->prepare($query); foreach (array_keys($data) as $key) { $stmt->bindParam(":{$key}", ${$key}); } extract($data); $stmt->execute(); return $data["id"]; } else { // INSERT $query = "INSERT INTO {$table} (" . implode(", ", array_keys($data)) . ") VALUES ("; $i = 0; foreach (array_keys($data) as $key) { if ($i++ > 0) { $query .= ", "; } $query .= ":{$key}"; } $query .= ")"; $stmt = $this->db->prepare($query); foreach (array_keys($data) as $key) { $stmt->bindParam(":{$key}", ${$key}); } extract($data); $stmt->execute(); return $this->db->lastInsertId(); } } catch (Exception $e) { var_dump($e->getMessage()); } }
/** * 获取insertID * * @return int */ public function insertID() { switch (DBManager::workingMode()) { case DBManager::MODE_PDO: return $this->_link->lastInsertId(); case DBManager::MODE_SQLI: return $this->_link->insert_id; case DBManager::MODE_SQL: return mysql_insert_id($this->_link); default: return 0; } }