![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 19.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem ze wstawianiem danych do bazy postgres. Dane są wysylane z formularza Flash.
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; } } ?> 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; } ?> Jak to zrobić, męcze sie juz z tym pare dni ![]() Ten post edytował nospor 19.10.2009, 11:42:39
Powód edycji: [nospor]:
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Znasz trochę angielski?
Cytat column "cegielka" does not exist Znaczy, że kolumna "cegielka" nie istnieje -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 19.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
po pierwsze: uzywaj poprawnego bbcode! do kodu php ma to byc PHP.
po drugie: wartosci tekstowe to sie chyba w apostrofach wklada. czyli nie: cegielka a: 'cegielka' po trzecie: przenosze -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 677 Pomógł: 89 Dołączył: 31.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Po piąte i dziesiąte - życzę powodzenia z takim zapisem:
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 09:02 |