Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z array w INSERT INTo
spit
post 18.06.2008, 10:58:18
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 1.08.2005

Ostrzeżenie: (0%)
-----


Cześć.
Niedawno zacząłem uczyć się programowania obiektowego. Chciałem wczoraj napisać klasę do operacji na bazie danych. Udało mi się napisać łączenie, liczenie, pobieranie danych. Naturalną koleją rzeczy, dzisiaj przyszło dodawanie. Tak więc mam taką klasę:
  1. <?php
  2. class MySQL {
  3. // (...)
  4.  
  5. function Insert($into, $tab) {
  6. foreach($tab as $t => $v) {
  7. $tabs[] = $t;
  8. $values[] = $v;
  9. }
  10. $t_list = join(', ', $tabs);
  11. $v_list = join(', ', $values);
  12. $i = mysql_query("INSERT INTO $into ($t_list) VALUES ($v_list)") or die(mysql_error());
  13. return $i;
  14. } 
  15. }
  16. ?>

I wywołuje ją
  1. <?php
  2. $DB = new MySQL;
  3. //laczenie sie z baza
  4. $DB -> Insert('folio', array ('nazwa' => 'jeden', 'opis' => 'dwa'));
  5. ?>

Co ciekawe, gdy robiłem to bez klasy, funkcji, tylko jako 'echo', by widzieć jak się prezentuje, wyglądało dobrze. Teraz jednak, przy próbie uruchomienia dostaję błąd "Unknown column 'jeden' in 'field list'". Powinno być 'insert info folio (nazwa, opis) values (jeden, dwa)'. Ktoś ma jakieś pomysły?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
dr_bonzo
post 18.06.2008, 11:09:13
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Cytat
'insert info folio (nazwa, opis) values (jeden, dwa)'. Ktoś ma jakieś pomysły?

1. I wlasnie jest, tylko to jest NIEPRAWIDLOWE, bo przeciez nie masz kolumn o nazwach `jeden` czy `dwa`. Jak mniemam to mialy byc stringi.

2.
  1. <?php
  2. $sql= "INSERT INTO $into ($t_list) VALUES ($v_list)";
  3. print( $sql );
  4. $i = mysql_query($sql) or die(mysql_error());
  5. ?>

dzieki temu zobaczysz jaka sqlke ci generuje


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
tomeksobczak
post 18.06.2008, 11:11:45
Post #3





Grupa: Zarejestrowani
Postów: 139
Pomógł: 10
Dołączył: 6.07.2007
Skąd: opole

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $v_list = join("', '", $values);
  3. $i = mysql_query("INSERT INTO $into ($t_list) VALUES ('$v_list')") or die(mysql_error());
  4. ?>

to powinno Ci pomóc


--------------------
Go to the top of the page
+Quote Post
spit
post 18.06.2008, 11:21:31
Post #4





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 1.08.2005

Ostrzeżenie: (0%)
-----


Rozwiązanie tomkasobczaka jest, dobre, dzięki wielkie!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 14:45