ugrás a tartalomhoz

Azonos auto_increment értékek kerülnek az adatbázisba

Sovereign · 2006. Nov. 8. (Sze), 08.28
Üdv mindekinek!


Egy fontos dologban szeretném a segítségeteket kérni.
Létre hoztam egy regisztrációs ürlapot ami mysql adatbázisba írja be az adatokat. Minden szépen és jól megy kivéve egy dolog. Az ID mezőt auto_increment-re állítom. A mysql kérésben direkt üresen hagyom az id mezőt, hogy nyugodtan számolja magának. Számolja is! Csak éppen kétszer írja ba ugyan azt. Hogy lehet ezt kiiktatni?

A választ előre is köszönöm!
 
1

Unique kulcsok

Anonymous · 2006. Nov. 8. (Sze), 08.36
Használj unique kulcsokat. Vagy írd meg a programodat, hogy ne küldje el kétszer az insertet.
2

válasz

Sovereign · 2006. Nov. 8. (Sze), 10.08
Egyetlen egyszer híom meg csak az insertet. Ez itt a baj!
3

hát...

virág · 2006. Nov. 8. (Sze), 11.59
Hát ha 2x van a táblában, akkor tuti, hogy nem 1x hívod meg :))) Debuggolj szorgosan!
4

auto_increment primary key

Dualon · 2006. Nov. 8. (Sze), 12.34
Ha az ID meződ auto_increment, az csak annyit jelent, hogy implicit növelni fogja az értékét a szerver. Legyen primary key is, ez önmagában unique mezőt is jelent.

Viszont szintén az a gyanúm, hogy a fentiekkel csupán a dupla insert helyett hibaüzenetet fogsz kapni - debug, debug, ahogy tanult kollégáim említették. :)
5

Kötelezően kulcs

Török Gábor · 2006. Nov. 8. (Sze), 12.46
3.x-es szériát nem tudom, de a 4.x-től kezdve a MySQL hibát dob, ha olyan auto_increment mezőt akarsz csinálni, ami nem kulcs is egyben.

ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
6

ha meg 3-as

virág · 2006. Nov. 8. (Sze), 14.42
(Szerintem)...ha pedig 3-as MySQL-ről lenne szó és ilyen gond lenne és tényleg nem lenne unique az auto_inc mező (amit 3-as nál én sem tudok), akkor itt lenne az ideje egy MySQL frissítésnek :)

Nah teszteltem (3.23.49-es verzión),

CREATE TABLE `teszt_tabla` (
`id` INT NOT NULL AUTO_INCREMENT ,
`nev` CHAR( 50 ) NOT NULL
) TYPE = MYISAM

Ez MySQL 3-alatt hibát dob: #1075 - Incorrect table definition; There can only be one auto column and it must be defined as a key

És a 3-as is ellenőrzi, hogy van-e már olyan kulcs, tehát a 3-as alatt is Unique az auto_inc mező. (#1062 - Duplicate entry '1' for key 1 hibaüzenetet ad, mint az újabbak)

Tehát szerintem vagy nem MyISAM tábaltípust használsz, vagy nincs is auto_inc a mezőn, vagy nem értem: adj majd több infót..
7

válasz

Sovereign · 2006. Nov. 8. (Sze), 16.21
infók:

Server: 2.5.2 for Windows
phpMyAdmin Database Manager Version 2.6.0-pl2
MySQL Database Version 4.1.7
Tábla infó:
members Tartalom Keresés Beszúr Tulajdonságok Kiürít Eldob 1 MyISAM latin1_swedish_ci 2.0 KB -

function upload($host, $user, $pass, $db, $query)
{
$kapcsolat = mysqli_connect($host,$user,$pass)
or die ('Hiba!'.mysqli_error($kapcsolat));

mysqli_select_db($kapcsolat,$db) or die ('Hiba'.mysqli_error($kapcsolat));

$eredmeny = mysqli_query($kapcsolat,$query);
print $query;

mysqli_close($kapcsolat);
}

Függvény hívása

$q = "INSERT INTO `members` ( `memid` , `veznev` , `kernev` , `varos` , `lakcim` , `irany` )
VALUES ('', '$vnev','$knev','$city', '$address','$iranysz')";

upload($h,$u,$p,$a,$q);
?>

elsődleges kulcsnak definiáltam az ID mezőt.
8

én vagyok a hülye!

Sovereign · 2006. Nov. 8. (Sze), 16.50
Kérdés vissza vonva. Én voltam a hülye. Svoinetből futattam a kérést és nem böngészőből - tudta a franc, hogy ez nem tetszik majd neki - de amint böngészőből hívtam meg máris minden jól ment!

Kösz mindet mindekinek azért!
9

hát legalább..

virág · 2006. Nov. 8. (Sze), 16.53
Legalább mi is beizgultunk a kérdésedtől és átismételtük a dolgot! :)
10

Jogos

Dualon · 2006. Nov. 8. (Sze), 17.18
Hülyeséget írtam, nem tudom, honnan rémlett. Elnézést.