Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Problemy z bazą MySQl
Forum PHP.pl > Forum > Przedszkole
dark_root
Witam,
mam pewien problem z baza MySQL. Kieruję do niej takie zapytanie:
  1. INSERT INTO firmy VALUES ( '', 'aa' ), ( 'id', 'linka')

co powinno owocować dodaniem nowego wpisu do bazy. Jednak problem jest taki, że za każdym razem zamiast jednego wpisu do bazy dodawane są dwa przy czym drugi wpis w polu linka ma wartość linka, przy zmianie nazwy tego pola zawsze wartość równa jest jego nazwie. Nie miałem pojęcia o co chodzi, kod przewertowałem w każdą stronę i nic. Dlatego ręcznie prowadziłem to zapytanie do bazy. Tam również ku mojemu zdziwieniu wyskoczyła informacja, że do bazy wprowadzono 2 wpisy. Dlaczego tak jest?
Tutaj kod bazy, który wydaje się również być czysty w tej sprawie:
  1. CREATE TABLE IF NOT EXISTS `firma` (
  2. `id` int(11) NOT NULL,
  3. `link` tinytext COLLATE utf8_polish_ci NOT NULL
  4. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;


O co może chodzić?
djgarsi
Pokaż kod którym dodajesz te wpisy do bazy.
dark_root
  1. class base {
  2. static public function add($link) {
  3. mysql_query("INSERT INTO firmy VALUES ( '', '' ), ( 'id', 'linka')")or die(mysql_error());
  4. }
  5. }
  6.  
  7. class Clear {
  8.  
  9. function __construct(Curl $page) {
  10. $a=str_replace(array('\"','\/'),array('"','/'),$page->OpenPage(Curl::write()));
  11. $nazwy = explode('<td colspan="2" class="nameArea"><h3><a href="', str_replace('\"','"',$a));
  12. unset($nazwy[0]);
  13. foreach($nazwy as $x)
  14. {
  15. $nazwy = explode('"', $x);
  16. echo $nazwy[0]."<br>";///////////wyswietlany tekst do zapisu w bazie jest poprawny
  17.  
  18. base::add($nazwy[0]);
  19. }
  20. }
  21. }
  22.  
  23.  
  24. $firmy = new Clear(new Curl());


Klasy Curl już nie wstawiałem bo zajmuje się ona zupełnie czym innym
radziopoke
Przeciesz już w pierwszym poście widać ze zapytanie MySQL doda 2 wpisy
pierwszy wpis to zapewne aa smile.gif

Ale do rzeczy. Zapytanie powinno wyglądać tak:
  1. INSERT INTO firmy ( 'id', 'linka') VALUES ( '', 'aa' );


W taki sposób doda tylko jeden wpis wpisując dane w odpowiednie pola.
mmmmmmm
A czemu z uporem maniaka usiłujecie wciskać coś w autonumer?
Prawidłowo powinno być:
  1. INSERT INTO firmy(`linka`) VALUES('aa')

Bez średnika na końcu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.