/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
MySQL insert
Fra : Kurt G


Dato : 10-08-11 21:13

Hej!

Jeg har en tabel, hvori et felt (id), som er af typen INT og med
uati_incement.

Hvordan kan jeg ved indsættelse af en ny post få værdien på id?

Mvh Kurt



 
 
Birger Sørensen (10-08-2011)
Kommentar
Fra : Birger Sørensen


Dato : 10-08-11 21:47

Kurt G formulerede spørgsmålet:
> Hej!
>
> Jeg har en tabel, hvori et felt (id), som er af typen INT og med
> uati_incement.
>
> Hvordan kan jeg ved indsættelse af en ny post få værdien på id?
>
> Mvh Kurt

Med mysql interfaset er der noget der hedder mysql_insert_id
http://fr.php.net/manual/en/function.mysql-insert-id.php
Hvis du bruger mysqli (mysql er forældet og usikkert), med prepared
statement, skal du bruge mysqli_insert_id
http://fr.php.net/manual/en/mysqli.insert-id.php
eller mysqli_stmt_insert_id
http://fr.php.net/manual/en/mysqli-stmt.insert-id.php

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Kurt G (11-08-2011)
Kommentar
Fra : Kurt G


Dato : 11-08-11 15:01

"Birger Sørensen" <sdc@bbsorensen.com> skrev i en meddelelse
news:4e42ee63$0$308$14726298@news.sunsite.dk...
> Kurt G formulerede spørgsmålet:
>> Hej!
>>
>> Jeg har en tabel, hvori et felt (id), som er af typen INT og med
>> uati_incement.
>>
>> Hvordan kan jeg ved indsættelse af en ny post få værdien på id?
>>
>> Mvh Kurt
>
> Med mysql interfaset er der noget der hedder mysql_insert_id
> http://fr.php.net/manual/en/function.mysql-insert-id.php
> Hvis du bruger mysqli (mysql er forældet og usikkert), med prepared
> statement, skal du bruge mysqli_insert_id
> http://fr.php.net/manual/en/mysqli.insert-id.php
> eller mysqli_stmt_insert_id
> http://fr.php.net/manual/en/mysqli-stmt.insert-id.php
>
> Birger
>
> --
> http://varmeretter.dk - billig, sund og hurtig mad
> http://bbsorensen.dk
>
Tak til jeg begge for jeres svar, det ser ud til at være det, jeg har brug
for!

Ang. mysqli: Jeg synes ikke, at jeg før har hørt om det! Er den mormale
mysql så ikke anbefalelsesværdig mere?

Mvh Kurt



Birger Sørensen (11-08-2011)
Kommentar
Fra : Birger Sørensen


Dato : 11-08-11 17:08

Efter mange tanker skrev Kurt G:
> Ang. mysqli: Jeg synes ikke, at jeg før har hørt om det! Er den mormale mysql
> så ikke anbefalelsesværdig mere?

Den er forældet.
mysqli kan bruge prepared statements, som er den eneste måde man kan
sikre sig mod injektion - det kan mysql ikke.
(I'et står for improved)
Det er også OOP - men der er "procedural style" for det meste også.
Lidt tungere at danse med, emm. - på den anden side, er sikkerheden
vigtig, er mysqli at foretrække.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Arne Vajhøj (23-08-2011)
Kommentar
Fra : Arne Vajhøj


Dato : 23-08-11 23:54

On 8/11/2011 10:00 AM, Kurt G wrote:
> "Birger Sørensen"<sdc@bbsorensen.com> skrev i en meddelelse
> news:4e42ee63$0$308$14726298@news.sunsite.dk...
>> Kurt G formulerede spørgsmålet:
>>> Jeg har en tabel, hvori et felt (id), som er af typen INT og med
>>> uati_incement.
>>>
>>> Hvordan kan jeg ved indsættelse af en ny post få værdien på id?
>>
>> Med mysql interfaset er der noget der hedder mysql_insert_id
>> http://fr.php.net/manual/en/function.mysql-insert-id.php
>> Hvis du bruger mysqli (mysql er forældet og usikkert), med prepared
>> statement, skal du bruge mysqli_insert_id
>> http://fr.php.net/manual/en/mysqli.insert-id.php
>> eller mysqli_stmt_insert_id
>> http://fr.php.net/manual/en/mysqli-stmt.insert-id.php

> Ang. mysqli: Jeg synes ikke, at jeg før har hørt om det! Er den mormale
> mysql så ikke anbefalelsesværdig mere?

mysqli extension kan alt som mysql extension kan og mysqli
prepared statement er nemmere at bruge korrekt end
mysql_real_escape_string med connection argument
(hvilket er nødvendigt for at den er sikker), så det
er svært at se nogen grund til at bruge mysql extension
(medmindre man hænger på PHP 4.x.x hvilket i sig selv
er et problem).

Hvis du vil ændre mindst muligt i din kode så skift til
mysqli procedural stil (husk dog at bruge prepared
statement).

Hvis du vil videre så brug mysqli OO style eller
PDO.

Arne



Arne Vajhøj (11-08-2011)
Kommentar
Fra : Arne Vajhøj


Dato : 11-08-11 00:29

On 8/10/2011 4:12 PM, Kurt G wrote:
> Jeg har en tabel, hvori et felt (id), som er af typen INT og med
> uati_incement.
>
> Hvordan kan jeg ved indsættelse af en ny post få værdien på id?

Den kan hentes med LAST_INSERT_ID().

Eksempel:

INSERT INTO tabel1(felt1,felt2) VALUES (123,'ABC');
INSERT INTO tabel2 VALUES(LAST_INSERT_ID(), true);

Andet eksempel:

INSERT INTO tabel1(felt1,felt2) VALUES (123,'ABC');
SELECT LAST_INSERT_ID();

Alternativt tilbyder visse database API'er mulighed for
at hente værdien i app.

PHP mysql_insert_id(), PHP MySQLi_STMT->last_id(),
PHP PDO->lastInsertId(), Java Statement.getGeneratedKeys()
etc..

Arne


Søg
Reklame
Statistik
Spørgsmål : 177409
Tips : 31962
Nyheder : 719565
Indlæg : 6407779
Brugere : 218874

Månedens bedste
Årets bedste
Sidste års bedste