static function extract_table($table, $table_name) { $entries = array(); foreach ($table as $row) { $e = new DBEntry($table_name); foreach ($row as $column => $value) { $e->set($column, $value); } $entries[] = $e; } return $entries; }
public function insert($obj, $exclude) { foreach ($exclude as $prop) { unset($obj->{$prop}); } $record = new DBEntry($this->table); $record->getProperties($obj); $q = $record->toSQLinsert(); if (self::$debug) { error_log(date('c') . "\n{$q}\n\n", 3, self::$debug); } self::$db->query($q); return $record; }
function test_extract_table() { $table = array(array('col1' => '11', 'col2' => '12'), array('col1' => '21', 'col2' => '22')); $entries = DBEntry::extract_table($table, 'table1'); $this->assertEquals(2, count($entries), "entries count"); $this->assertTrue($entries[0] instanceof DBEntry, "first element is a DBEntry"); $this->assertEquals('table1', $entries[0]->table, "entries table name"); $this->assertEquals(11, $entries[0]->values['col1'], "entry 0 col 1"); $this->assertEquals(12, $entries[0]->values['col2'], "entry 0 col 2"); }
<?php $db_name = $_POST['dbn']; unset($_POST['dbn']); $db_host = $_POST['dbh']; unset($_POST['dbh']); require '../../lib/dbentry.php'; if (!@mysql_connect($db_host, $_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) || !@mysql_select_db($db_name)) { Header("WWW-Authenticate: Basic realm=\"{$db_name}@{$db_host}\""); Header("HTTP/1.0 401 Unauthorized"); fatal_error("<b>CONNECTION ERROR</b> check your server permissions"); } $entries = DBEntry::extract($_POST); $q = reset($entries)->toSQLcreate(); mysql_query($q) or fatal_error('<b>SQL ERROR</b> ' . mysql_error()); foreach ($entries as $e) { $q = $e->toSQLinsert(); mysql_query($q) or fatal_error('<b>SQL ERROR</b> ' . mysql_error()); } success("Data Entry Added <button onclick='location.href=\"" . $_SERVER['HTTP_REFERER'] . "\"'>Continue</button>"); function fatal_error($message) { die("<div style='background-color: yellow; border: 2px solid red; padding: 10px; margin: 10px;'>{$message}</div>"); } function success($message) { die("<div style='background-color: green; color: white; padding: 10px; margin: 10px;'>{$message}</div>"); }