Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] PDO + MySQL, automatyczne ID
Forum PHP.pl > Forum > Przedszkole
Gość
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?
webdice
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ść
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
webdice
Pobierz sobie phpMyadmin i wrzuć go do katalogu publicznego. Export znajdziesz w górnej belce, jak wejdziesz w strukturę tabeli.
Gość
zrobilem od nowa i zadzialalo. sam nie wiem gdzie byl blad, pewnie w skladni cos musialem pomylic. dzieki za pomoc smile.gif
wookieb
jak znam życie ktoś ustawił wartość auto_increment tabeli na 0
Gość
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?
wookieb
Co tzn Odpowiedniki PDO w Mysql?
Walidacje robi się i w PHP i w Javascript. na forum było setki razy.
Gość
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
mat-bi
Polecam manual 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.
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.