Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Problemy z bazą MySQl
dark_root
post 17.02.2013, 13:04:06
Post #1





Grupa: Zarejestrowani
Postów: 341
Pomógł: 1
Dołączył: 19.11.2007

Ostrzeżenie: (10%)
X----


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ć?
Go to the top of the page
+Quote Post
djgarsi
post 17.02.2013, 13:06:42
Post #2





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


Pokaż kod którym dodajesz te wpisy do bazy.


--------------------
Go to the top of the page
+Quote Post
dark_root
post 17.02.2013, 13:30:13
Post #3





Grupa: Zarejestrowani
Postów: 341
Pomógł: 1
Dołączył: 19.11.2007

Ostrzeżenie: (10%)
X----


  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

Ten post edytował dark_root 17.02.2013, 13:30:44
Go to the top of the page
+Quote Post
radziopoke
post 17.02.2013, 14:59:19
Post #4





Grupa: Zarejestrowani
Postów: 125
Pomógł: 14
Dołączył: 2.06.2010

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


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.
Go to the top of the page
+Quote Post
mmmmmmm
post 17.02.2013, 15:47:20
Post #5





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


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.
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: 28.05.2024 - 16:37