Skocz do zawartości

problem z INSERT


Arent

Rekomendowane odpowiedzi

Witam wszystkich

 

Mam dziwny problem z insertem, oto kod:

 

<?PHP

include('http://download.xxxx.csv');

mysql_connect("mysq", "name", "pass")

OR die("Nie można nawiazac polaczenia z baza");

mysql_select_db("NAZWA");

 

$czas=date("H,i,s,m,d,Y");

 

$query=("INSERT INTO NAZWA VALUES (NULL, '$czas', 'http://download.xxxx.csv')");

 

mysql_query($query) or die ("Wystąpiły problemy przy zapisywaniu danych");

 

mysql_close($my_connection);

 

?>

 

oczywiście mam komunikat Wystąpiły problemy przy zapisywaniu danych

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy
Warto też używać czegos innego do obsługi bazy niż te standardowe funkcje. Np. PDO, AnoDB, mysqli i inne śmiecie ;o. Pozdrawiam.

Jasne... Kofelku jasne...

 

Spróbuj dodać przez phpmyadmina INSERT INTO nazwa VALUES (NULL, 'costam', 'http://download.xxxx.csv'); zobacz jaki error wywala

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy
Po co dajesz te argumenty w apostrofach?

 

żeby się dodały ? Ja nawet liczby podaję w apostrofach (inna sprawa, ze mam też pola ENUM i dzięki temu nie mieszają się indeksy z mozliwościami).

Odnośnik do komentarza
Udostępnij na innych stronach

To robisz tylko +- kilka godzin i masz czas Greenwich.

 

no tak, ale jak czas np. w Polsce się zmiani na letni, to się wszystko sypnie

 

2. sprawa, zrezygnowałem z kolumny ID, która pełniła rolę indeksu i usunąłem ją, chciałem, żeby rolę indeksu pełnił date()

 

jednak po dodaniu rekordu kolejność jest taka

 

29/02/2008 | 13:54:18

29/02/2008 | 13:54:05

 

a chciałbym żeby było:

 

 

29/02/2008 | 13:54:05

29/02/2008 | 13:54:18

Odnośnik do komentarza
Udostępnij na innych stronach

no tak, ale skoro nowy rekord dodaje przed 1. rekord, a nie za ostatnim to chyba musi się to skądś brać, chyba można to jakoś ustawić, żeby dodawało domyślnie za ostatnim rekordem?

 

 

 

 

zrobię jeszcze mały offtopic nt. CRONa

 

jest jakaś alternatywa dla crona, coś słyszałem o jakichś wyzwalaczach

 

w mojej firmie hostingowej z poziomu panelu można ustawić cron-a, ale trzeba czekać kilka godzin na aktywację, do tego z tego co widzę, to hosting maskuje katalog var/spool/ (nie widzę go z poziomu klienta FTP)

 

no i chciałbym ustawić go np. tak, ze uruchamia się w każdy dzień roboczy (pn-pt) i działa np. od 6.00 do do 18.00 uruchamiając zadanie co 15 minut, czegoś takiego nie moge skonfigurować, więc sie zastanawiem czy nie ma jakiejś alternatywy

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

1) Jeżeli chcesz w bazie danych trzymać datę, to stwórz w tym celu kolumnę int (o długości 11 znaków bodajże) i zapisuj czas w postaci liczby unixtime. Dzięki temu zaoszczędzisz sobie kłopotów z postformatowaniem. Poza tym na zwykłych liczbach lepiej się operuje.

 

2) Kolumna daty pełniąca rolę indeksu, to bardzo zły pomysł, bo raz, że będą kłopoty ze zmianami czasu, a po drugie w danej sekundzie może się zdarzyć, że dodasz więcej niż jeden wiersz, a to poskutkuje powstaniem dwóch wpisów z tym samym indeksem. Parametr UNIQUE nie ochroni przed ewentualnymi błędami.

 

3) Jeśli chodzi o indeksację wierszy, to powróć do tego co usunąłeś, a mianowicie stwórz kolumnę typu int i nadaj jej właściwości: PRIMARY, UNIQUE oraz AUTO INCREMENT i NOT NULL. Ten sposób jest znacznie lepszym i szybszym rozwiązaniem. Poza tym taka kolumna zjada mało zasobów i umożliwa późniejsze łatwe wiązanie z innymi tabelami.

 

4) Sortowanie wierszy względem kolumny liczbowej jest zawsze bardzo szybkie, więc nie wiem w czym problem. Poza tym jeżeli chcesz sortować według kolumny o innym typie danych lub według wielu kolumn, to często opłaca się nałożyć INDEX np. typu BTREE (zjada troszkę miejsca, ale przyspiesza ewentualne operacje na kolumnach czasem nawet kilkadziesiątkrotnie).

 

 

Co do crona, to właśnie służy od tego co napisałeś i nie ma sensu szukać innych alternatyw, zwłaszcza że twój ISP i tak na to nie pozwoli. Może tworzysz złe reguły?

Odnośnik do komentarza
Udostępnij na innych stronach

A timestamp to... chodzi o typ pola.

 

wiem! dałem typ pola timestamp i nazwe timestamp

 

 

2) Kolumna daty pełniąca rolę indeksu, to bardzo zły pomysł, bo raz, że będą kłopoty ze zmianami czasu, a po drugie w danej sekundzie może się zdarzyć, że dodasz więcej niż jeden wiersz, a to poskutkuje powstaniem dwóch wpisów z tym samym indeksem. Parametr UNIQUE nie ochroni przed ewentualnymi błędami.

 

ano nie pomyślałem :D

 

4) Sortowanie wierszy względem kolumny liczbowej jest zawsze bardzo szybkie, więc nie wiem w czym problem. Poza tym jeżeli chcesz sortować według kolumny o innym typie danych lub według wielu kolumn, to często opłaca się nałożyć INDEX np. typu BTREE (zjada troszkę miejsca, ale przyspiesza ewentualne operacje na kolumnach czasem nawet kilkadziesiątkrotnie).

 

 

no jednak trochę czasu mija, jak się ma np. 10k wierszy

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
no jednak trochę czasu mija, jak się ma np. 10k wierszy
To robisz coś źle, bo ja wyciągając 30 wierszy z puli 150.000 przy sortowaniu względem kolumny liczbowej uzyskuję czas rzędu ułamka sekundy.
Odnośnik do komentarza
Udostępnij na innych stronach

no nie wiem, może zależy od obciążenia serwera, ja mam dziennie około 50k odsłon (łącznie z phpbb2, które też się muli), a cały content jest w bazie, więc zapytań trochę jest

 

 

ps1. coś ten zegar w mysql krzywo chodzi :) porównuję go z zegarkiem z TVP3 i są 2 min. rozbiezności, skąd MySQL synchronizuje swój zegar? robi to firma hostingowa?

 

 

ps2. co się stało z algorytmy.pl? od tygodnia próbuję tam wejść ale widzę tylko białe tło, tylko logo w pasku adresu widać, u was to samo (chodzi tylko pod firefoxem, a co z operą i IE?)? ktoś mógłby polecić coś podobnego, tj. za wykupiony abonament dostaje się drobną pomoc programisty

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...