Mianowicie wyskakuje mi taki błąd
Kod
PHP Warning: pg_query() [<a href='function.pg-query'>function.pg-query</a>]: Query failed: ERROR: column "cegielka" does not exist in C:\wamp\www\ma\post\classes\pg.php on line 42
Plik pg.php wyglada następujaco
Kod
<?php
class Database {
protected $host;
protected $port;
protected $user;
protected $pwd;
protected $dbName;
protected $flash;
protected $dbLink;
protected $result;
protected $resultObj;
function __construct($dbName,$user, $pwd, $port, $flash=1){
$this->host = $host;
$this->user = $user;
$this->pwd = $pwd;
$this->port = $port;
$this->dbName = $dbName;
$this->flash = $flash;
$this->connect();
}
// Po??cz si? z serwerem mySQL i wybierz baz? danych
public function connect() {
try {
$this->dbLink=@pg_connect("dbname=".$this->dbName." user=".$this->user." password=".$this->pwd." port=".$this->port." ");
if (!$this->dbLink) {
throw new Exception ("Nie mozna bylo polaczyc uzytkownika $this->user z baza $this->dbName");
}
}
catch (Exception $e) {
echo $this->flash ? 'error='.urlencode($e->getMessage()) : $e->getMessage();
exit();
}
return $this->dbLink;
}
// Wykonaj zapytanie SQL
public function query($query) {
try {
$this->result = pg_query($this->dbLink, $query);
if (!$this->result) {
throw new Exception ('Błąd SQL: ' . pg_errormessage($this->dbLink));
}
}
catch (Exception $e) {
echo $this->flash ? 'error='.urlencode($e->getMessage()) : $e->getMessage();
exit();
}
$this->resultObj = new MyResult($this->result);
return $this->resultObj;
}
// zamknij połączenie SQL
public function close(){
pg_close($this->dbLink);
}
}
class MyResult {
protected $theResult;
public $num_rows;
function __construct($r) {
if (is_bool($r)) {
$this->num_rows = 0;
}
else {
$this->theResult = $r;
// pobierz całkowitą liczbę znalezionych rekordów
$this->num_rows = pg_num_rows($r);
}
}
// pobierz asocjacyjną tablicę wyników (przetwarza naraz jeden wiersz)
function fetch_assoc() {
$newRow = pg_fetch_assoc($this->theResult);
return $newRow;
}
}
?>
class Database {
protected $host;
protected $port;
protected $user;
protected $pwd;
protected $dbName;
protected $flash;
protected $dbLink;
protected $result;
protected $resultObj;
function __construct($dbName,$user, $pwd, $port, $flash=1){
$this->host = $host;
$this->user = $user;
$this->pwd = $pwd;
$this->port = $port;
$this->dbName = $dbName;
$this->flash = $flash;
$this->connect();
}
// Po??cz si? z serwerem mySQL i wybierz baz? danych
public function connect() {
try {
$this->dbLink=@pg_connect("dbname=".$this->dbName." user=".$this->user." password=".$this->pwd." port=".$this->port." ");
if (!$this->dbLink) {
throw new Exception ("Nie mozna bylo polaczyc uzytkownika $this->user z baza $this->dbName");
}
}
catch (Exception $e) {
echo $this->flash ? 'error='.urlencode($e->getMessage()) : $e->getMessage();
exit();
}
return $this->dbLink;
}
// Wykonaj zapytanie SQL
public function query($query) {
try {
$this->result = pg_query($this->dbLink, $query);
if (!$this->result) {
throw new Exception ('Błąd SQL: ' . pg_errormessage($this->dbLink));
}
}
catch (Exception $e) {
echo $this->flash ? 'error='.urlencode($e->getMessage()) : $e->getMessage();
exit();
}
$this->resultObj = new MyResult($this->result);
return $this->resultObj;
}
// zamknij połączenie SQL
public function close(){
pg_close($this->dbLink);
}
}
class MyResult {
protected $theResult;
public $num_rows;
function __construct($r) {
if (is_bool($r)) {
$this->num_rows = 0;
}
else {
$this->theResult = $r;
// pobierz całkowitą liczbę znalezionych rekordów
$this->num_rows = pg_num_rows($r);
}
}
// pobierz asocjacyjną tablicę wyników (przetwarza naraz jeden wiersz)
function fetch_assoc() {
$newRow = pg_fetch_assoc($this->theResult);
return $newRow;
}
}
?>
plik wstawiajacy dane do bazy
Kod
<?php
// ustaw porządek sortowania wyników
$order = ' ORDER BY family_name, first_name, username';
// dołącz klasy bazy danych
require_once('C:\wamp\www\ma\post\classes\pg.php');
// jeśli "magiczne cudzysłowy" są wyłączone, poprzedź wszystkie cudzysłowy i apostrofy znakami specjalnymi
foreach($_POST as $key=>$value) {
if (!get_magic_quotes_gpc()) {
$temp = addslashes($value);
$_POST[$key] = $temp;
}
}
// Zarejestruj nowego użytkownika, jeśli w tablicy POST zmienna "action" jest ustawiona na "register"
if ($_POST['action'] == 'register') {
// sprawdź, czy podana nazwa nie jest już w użyciu
$unique = checkDuplicate($_POST['username']);
if ($unique) {
$db = new Database('flash' , 'postgres', 'koszalin', '5432');
$sql = 'INSERT INTO users (first_name,family_name,username,pwd)
VALUES ('.$_POST['first_name'].','.$_POST['family_name'].','.$_POST['username'].','.$_POST['pwd'].')';
$result = $db->query($sql);
if ($result) {
$created = 'Utworzono konto dla ';
$created .= stripslashes($_POST['first_name']).' '.stripslashes($_POST['family_name']);
echo 'duplicate=n&message='.urlencode($created);
}
}
}
elseif ($_POST['action'] == 'listAll') {
// pobranie pełnej listy użytkowników
$sql = 'SELECT * FROM users'.$order;
echo getUserList($sql);
}
elseif ($_POST['action'] == 'find') {
// wyszukiwanie po imieniu, itd.
// usuń wszystkie krańcowe białe znaki z danych wejściowych użytkownika
$input['first_name'] = trim($_POST['first_name']);
$input['family_name'] = trim($_POST['family_name']);
$input['username'] = trim($_POST['username']);
// utwórz tablicę parametrów wyszukiwania, z której skorzysta się w zapytaniu SQL
$searchParams = array();
$i = 0;
foreach ($input as $key => $value) {
if (strlen($value) > 0) {
$searchParams[$i] = $key.' LIKE "%'.$value.'%"';
$i++;
}
}
// utwórz zapytanie SQL i połącz je z parametrami oraz porządkiem sortowania
$sql = 'SELECT * FROM users WHERE '.join($searchParams,' AND ').$order;
// wyślij zapytanie do bazy danych i prześlij z powrotem wyniki
echo getUserList($pg);
}
elseif ($_POST['action'] == 'getDetails') {
// pobierz szczegóły dotyczące użytkownika w celu aktualizacji
$sql = 'SELECT * FROM users WHERE user_id = '.$_POST['user_id'];
echo getDetails($sql);
}
elseif ($_POST['action'] == 'doUpdate') {
// aktualizuj rekord
$unique = checkDuplicate($_POST['username'], $_POST['user_id']);
if ($unique) {
$db = new Database('flash' , 'postgres', 'koszalin', '5432');
$sql = 'UPDATE users SET first_name = '.$_POST['first_name'].', family_name = '.$_POST['family_name'].', username = '.$_POST['username'].'';
if ($_POST['pwdChange'] == 'newPwd') {
$sql .= ', pwd = '.sha1($_POST['pwd']).'';
}
$sql .= ' WHERE user_id = '.$_POST['user_id'];
$db->query($sql);
$db->close();
$updated = 'Zaktualizowano konto ';
$updated .= stripslashes($_POST['first_name']).' '.stripslashes($_POST['family_name']);
$output = 'duplicate=n&message='.urlencode($updated);
// wyświetl zmodyfikowaną listę użytkowników
$revisedList = 'SELECT * FROM users'.$order;
echo $output .= '&'.getUserList($revisedList);
}
}
elseif ($_POST['action'] == 'doDelete') {
// usuń rekord
$db = new Database('flash' , 'postgres', 'koszalin', '5432');
$sql = 'DELETE FROM users WHERE user_id = '.$_POST['user_id'];
$db->query($sql);
$db->close();
// wyświetl zmodyfikowaną listę użytkowników
$revisedList = 'SELECT * FROM users'.$order;
$deleted = 'Usunieto konto: '.stripslashes($_POST['who']);
$output = 'duplicate=n&message='.urlencode($deleted);
echo $output .= '&'.getUserList($revisedList);
}
elseif ($_POST['action'] == 'logout') {
// kod wylogowywania powinien być umieszczony w tym miejscu
unset($_SESSION['authenticated']);
session_destroy();
echo 'status=goodbye';
}
// SprawdĽ istnienie powtarzaj±cych się nazw użytkowników
function checkDuplicate($username, $user_id = 0) {
$db = new Database('flash' , 'postgres', 'koszalin', '5432');
$sql = "SELECT username FROM users WHERE username = ".$_POST['username'];
// jeśli jako argument przekazano także user_id dodaj odpowiedni fragment SQL
if ($user_id > 0) {
$sql .= 'AND user_id != $user_id';
}
$result = $db->query($sql);
$numrows = $result->num_rows;
$db->close();
// jeśli nazwa użytkownika jest już w użyciu, prześlij komunikat o błędzie
if ($numrows > 0) {
$duplicate = 'Nazwa uzytkownika sie powtarza. Wybierz inna.';
echo 'duplicate=y&message='.urlencode($duplicate);
exit();
}
else {
return true;
}
}
// pobierz listę użytkowników
function getUserList($sql) {
$db = new Database('flash' , 'postgres', 'koszalin', '5432');
$result = $db->query($sql);
$numrows = $result->num_rows;
$userlist = "total=$numrows";
$counter = 0;
while ($row = $result->fetch_assoc()) {
$userlist .= '&user_id'.$counter.'='.$row['user_id'];
$userlist .= '&first_name'.$counter.'='.urlencode($row['first_name']);
$userlist .= '&family_name'.$counter.'='.urlencode($row['family_name']);
$userlist .= '&username'.$counter.'='.urlencode($row['username']);
$counter++;
}
$db->close();
return $userlist;
}
// pobierz szczegóły pojedynczego rekordu
function getDetails($sql) {
$db = new Database('flash' , 'postgres', 'koszalin', '5432');
$result = $db->query($sql);
while ($row = $result->fetch_assoc()) {
$details = 'user_id='.$row['user_id'];
$details .= '&first_name='.urlencode($row['first_name']);
$details .= '&family_name='.urlencode($row['family_name']);
$details .= '&username='.urlencode($row['username']);
$details .= '&pwd='.$row['pwd'];
}
$db->close();
return $details;
}
?>
// ustaw porządek sortowania wyników
$order = ' ORDER BY family_name, first_name, username';
// dołącz klasy bazy danych
require_once('C:\wamp\www\ma\post\classes\pg.php');
// jeśli "magiczne cudzysłowy" są wyłączone, poprzedź wszystkie cudzysłowy i apostrofy znakami specjalnymi
foreach($_POST as $key=>$value) {
if (!get_magic_quotes_gpc()) {
$temp = addslashes($value);
$_POST[$key] = $temp;
}
}
// Zarejestruj nowego użytkownika, jeśli w tablicy POST zmienna "action" jest ustawiona na "register"
if ($_POST['action'] == 'register') {
// sprawdź, czy podana nazwa nie jest już w użyciu
$unique = checkDuplicate($_POST['username']);
if ($unique) {
$db = new Database('flash' , 'postgres', 'koszalin', '5432');
$sql = 'INSERT INTO users (first_name,family_name,username,pwd)
VALUES ('.$_POST['first_name'].','.$_POST['family_name'].','.$_POST['username'].','.$_POST['pwd'].')';
$result = $db->query($sql);
if ($result) {
$created = 'Utworzono konto dla ';
$created .= stripslashes($_POST['first_name']).' '.stripslashes($_POST['family_name']);
echo 'duplicate=n&message='.urlencode($created);
}
}
}
elseif ($_POST['action'] == 'listAll') {
// pobranie pełnej listy użytkowników
$sql = 'SELECT * FROM users'.$order;
echo getUserList($sql);
}
elseif ($_POST['action'] == 'find') {
// wyszukiwanie po imieniu, itd.
// usuń wszystkie krańcowe białe znaki z danych wejściowych użytkownika
$input['first_name'] = trim($_POST['first_name']);
$input['family_name'] = trim($_POST['family_name']);
$input['username'] = trim($_POST['username']);
// utwórz tablicę parametrów wyszukiwania, z której skorzysta się w zapytaniu SQL
$searchParams = array();
$i = 0;
foreach ($input as $key => $value) {
if (strlen($value) > 0) {
$searchParams[$i] = $key.' LIKE "%'.$value.'%"';
$i++;
}
}
// utwórz zapytanie SQL i połącz je z parametrami oraz porządkiem sortowania
$sql = 'SELECT * FROM users WHERE '.join($searchParams,' AND ').$order;
// wyślij zapytanie do bazy danych i prześlij z powrotem wyniki
echo getUserList($pg);
}
elseif ($_POST['action'] == 'getDetails') {
// pobierz szczegóły dotyczące użytkownika w celu aktualizacji
$sql = 'SELECT * FROM users WHERE user_id = '.$_POST['user_id'];
echo getDetails($sql);
}
elseif ($_POST['action'] == 'doUpdate') {
// aktualizuj rekord
$unique = checkDuplicate($_POST['username'], $_POST['user_id']);
if ($unique) {
$db = new Database('flash' , 'postgres', 'koszalin', '5432');
$sql = 'UPDATE users SET first_name = '.$_POST['first_name'].', family_name = '.$_POST['family_name'].', username = '.$_POST['username'].'';
if ($_POST['pwdChange'] == 'newPwd') {
$sql .= ', pwd = '.sha1($_POST['pwd']).'';
}
$sql .= ' WHERE user_id = '.$_POST['user_id'];
$db->query($sql);
$db->close();
$updated = 'Zaktualizowano konto ';
$updated .= stripslashes($_POST['first_name']).' '.stripslashes($_POST['family_name']);
$output = 'duplicate=n&message='.urlencode($updated);
// wyświetl zmodyfikowaną listę użytkowników
$revisedList = 'SELECT * FROM users'.$order;
echo $output .= '&'.getUserList($revisedList);
}
}
elseif ($_POST['action'] == 'doDelete') {
// usuń rekord
$db = new Database('flash' , 'postgres', 'koszalin', '5432');
$sql = 'DELETE FROM users WHERE user_id = '.$_POST['user_id'];
$db->query($sql);
$db->close();
// wyświetl zmodyfikowaną listę użytkowników
$revisedList = 'SELECT * FROM users'.$order;
$deleted = 'Usunieto konto: '.stripslashes($_POST['who']);
$output = 'duplicate=n&message='.urlencode($deleted);
echo $output .= '&'.getUserList($revisedList);
}
elseif ($_POST['action'] == 'logout') {
// kod wylogowywania powinien być umieszczony w tym miejscu
unset($_SESSION['authenticated']);
session_destroy();
echo 'status=goodbye';
}
// SprawdĽ istnienie powtarzaj±cych się nazw użytkowników
function checkDuplicate($username, $user_id = 0) {
$db = new Database('flash' , 'postgres', 'koszalin', '5432');
$sql = "SELECT username FROM users WHERE username = ".$_POST['username'];
// jeśli jako argument przekazano także user_id dodaj odpowiedni fragment SQL
if ($user_id > 0) {
$sql .= 'AND user_id != $user_id';
}
$result = $db->query($sql);
$numrows = $result->num_rows;
$db->close();
// jeśli nazwa użytkownika jest już w użyciu, prześlij komunikat o błędzie
if ($numrows > 0) {
$duplicate = 'Nazwa uzytkownika sie powtarza. Wybierz inna.';
echo 'duplicate=y&message='.urlencode($duplicate);
exit();
}
else {
return true;
}
}
// pobierz listę użytkowników
function getUserList($sql) {
$db = new Database('flash' , 'postgres', 'koszalin', '5432');
$result = $db->query($sql);
$numrows = $result->num_rows;
$userlist = "total=$numrows";
$counter = 0;
while ($row = $result->fetch_assoc()) {
$userlist .= '&user_id'.$counter.'='.$row['user_id'];
$userlist .= '&first_name'.$counter.'='.urlencode($row['first_name']);
$userlist .= '&family_name'.$counter.'='.urlencode($row['family_name']);
$userlist .= '&username'.$counter.'='.urlencode($row['username']);
$counter++;
}
$db->close();
return $userlist;
}
// pobierz szczegóły pojedynczego rekordu
function getDetails($sql) {
$db = new Database('flash' , 'postgres', 'koszalin', '5432');
$result = $db->query($sql);
while ($row = $result->fetch_assoc()) {
$details = 'user_id='.$row['user_id'];
$details .= '&first_name='.urlencode($row['first_name']);
$details .= '&family_name='.urlencode($row['family_name']);
$details .= '&username='.urlencode($row['username']);
$details .= '&pwd='.$row['pwd'];
}
$db->close();
return $details;
}
?>
Jak to zrobić, męcze sie juz z tym pare dni
