Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] PDO + MySQL, automatyczne ID
-Gość-
post
Post #1





Goście







Witam!

mam cos takiego

baza MySQL

Kod
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY


dodaje w PHP PDO

  1. $pdo->exec("INSERT INTO post(nick, name) VALUES ('admin', 'admin')");


i mi wywala

Cytat
Wystšpił błšd biblioteki PDO: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0' for key 'PRIMARY'


robie tak:
  1. $pdo->exec("INSERT INTO post(id, nick, name) VALUES (NULL, 'admin', 'admin')");


Cytat
Wystšpił błšd biblioteki PDO: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'id' cannot be null


Wiem, ze mozna petle zrobic w PHP i automatycznie zwiekszac ID, albo pobierac ostatnie ID z bazy, no ale chyba musi byc jakis latwiejszy sposob, zeby mi sie to automatycznie dodawalo?
Go to the top of the page
+Quote Post
webdice
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




To powinno działać. Spróbuj dodać rekord w phpMyAdmin (pole id pozostaw puste) lub:

  1. $pdo->exec("INSERT INTO post (`id`, `nick`, `name`) VALUES (NULL, 'admin', 'admin')");


Dobra, nie doczytałem. Wyeksportuj strukturę tabeli i wklej tutaj oraz napisz jaką masz wersję bazy.
Go to the top of the page
+Quote Post
-Gość-
post
Post #3





Goście







tylko jak zrobic taki export? uzywam WAMPa, w dodatku jak wchodze w localhost/phpmyadmin to dostaje 404 ;/ jak sie dostac do niego inaczej?

MySQL 5.1.36

pozdrawiam i dzieki za pomoc
Go to the top of the page
+Quote Post
webdice
post
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Pobierz sobie phpMyadmin i wrzuć go do katalogu publicznego. Export znajdziesz w górnej belce, jak wejdziesz w strukturę tabeli.
Go to the top of the page
+Quote Post
-Gość-
post
Post #5





Goście







zrobilem od nowa i zadzialalo. sam nie wiem gdzie byl blad, pewnie w skladni cos musialem pomylic. dzieki za pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




jak znam życie ktoś ustawił wartość auto_increment tabeli na 0
Go to the top of the page
+Quote Post
-Gość-
post
Post #7





Goście







calkiem mozliwe. a przy okazji ma ktos strone z odpowiednikami PDO w MySQL?

i jeszcze takie pytanie - jak najlepiej robic teraz walidacje formularzy? chodzi o to zeby np nick mial minimum 5 znakow. lepiej to zrobic w PHP czy javascript/ajax? a moze w PDO sa jakies ukryte mozliwosci do tego?
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Co tzn Odpowiedniki PDO w Mysql?
Walidacje robi się i w PHP i w Javascript. na forum było setki razy.
Go to the top of the page
+Quote Post
-Gość-
post
Post #9





Goście







chodzi o np mysql_fetch_assoc a w PDO jest fetch()-> itp

wiem jak sie robi walidacje, pytalem tylko po prostu w czym sie powinno robic, chyba ze to nie ma znaczenia i jak komu jest wygodniej
Go to the top of the page
+Quote Post
mat-bi
post
Post #10





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

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


Polecam manual (IMG:style_emoticons/default/wink.gif)

Ale lepiej jest używać PDO, potem masz łatwiejszą migrację na inne bazy.

http://pl2.php.net/manual/pl/book.mysql.php

I jeszcze z walidacją - najlepiej ją robić po 2 stronach - klienta, bo nie musi przeładowywać strony, by mu pokazało, co źle zrobi i po stronie serwera, gdyż hacker z podstawami potrafi obejść formularz, np. wysyłając własny.

Ten post edytował mat-bi 16.03.2011, 18:25:30
Go to the top of the page
+Quote Post

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: 15.09.2025 - 05:19