Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Access][PHP] Zapis do bazy, "IF NOT EXISTS"
--franz87--
post
Post #1





Goście







Witam,
Mam dwa problemy przy zapisie do bazy Access (*mdb) z poziomu skryptu PHP.

1. Tworzę tabele, i chcę zastosować IF NOT EXISTS, żeby, gdy tabela istnieje nie tworzono jej.

  1. $polaczenie = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\xampp\\htdocs\\ebayAPI\\baza.mdb", '', '');
  2. $sql = "CREATE TABLE ".$zmienna;
  3. $sql .= "IF NOT EXISTS (ID AUTOINCREMENT,";
  4. $sql .= " User VARCHAR,";
  5. $sql .= " Cena VARCHAR,";
  6. $sql .= " Ilosc VARCHAR,";
  7. $sql .= " Data VARCHAR,";
  8. $sql .= " Godzina VARCHAR,";
  9. $sql .= " Nazwa VARCHAR,";
  10. $sql .= " Numer VARCHAR";
  11. $sql .= " );";
  12. $wynik = odbc_exec($polaczenie,$sql)or die(odbc_exec());

Próbowałem dawać "IF NOT EXISTS" w różnych miejscach, ale zawsze wywala błąd.
To samo chcę zastosować do INSERT INTO przy tworzeniu rekordu, by nie dodawał dubla.Też nie działa.

2. Dałem ID typ AUTOINCREMENT, żeby rekord sam dodawał odpowiednią wartość ID, ale nie działa.
Robiłem to zostawiając przy ID pusty string.

  1. $sql = "INSERT INTO tabela (ID, User, Cena, Ilosc, Data, Godzina, Nazwa, Numer) ";
  2. $sql .= " VALUES ('', 'user', '12,99' , '5szt' , '12-05-2013, '13:00:55' , 'nazwa', 'numer);";
  3. $wynik = odbc_exec($polaczenie,$sql) or die(odbc_exec());

Jeżeli mu podam jakąś wartość ID to działa, ale ja chcę, żeby on dodawał nast wolne ID automatycznie
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mmmmmmm
post
Post #2





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

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


Typ NUMERIC powinien być odpowiedni. Nie możesz przekazywać liczby z przecinkiem, bo to jest złe (np. przy konstruowaniu SQL bez parametrów przecinek zostanie potraktowany jako separator pól.) Co do tego ucinannia to nie wiem - pokaż kod.
A czemu daty chcesz zapisywać jako string? Zapisuj jako DATETIME. Tylko, że w Jet-SQL się trochę inaczej zapisuje:
  1. INSERT INTO test(pole_numeric, pole_datetime) VALUES(4, #01/03/2013 13:12#)

Datę (czas) zapisuje się w formacie #MM/DD/YYYY HH:NN:SS#
Najpierw MIESIĄC!!
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 8.10.2025 - 06:08