mysql_insert_id functie voor MS SQL Server 2000?

Pagina: 1
Acties:

  • B2
  • Registratie: April 2000
  • Laatst online: 11:01

B2

wa' seggie?

Topicstarter
Ik ben bezig met het porten van php scripts ism MySQL naar nieuwe scripts voor MS SQL Server 2000.
Wanneer er een product aangemaakt wordt, haalt het script met de functie mysql_insert_id het ID op, om zo het product aan een categorie te koppelen.

Maar zoiets als mssql_insert_id bestaat niet. Wat is nu de beste manier om toch het gewenste resultaat te krijgen?
Of bestaat er wel een equivalent van mysql_insert_id voor MSSQL 2000?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

select MAX(id) na het invoeren?

Doet iets met Cloud (MS/IBM)


  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
@@identity

  • B2
  • Registratie: April 2000
  • Laatst online: 11:01

B2

wa' seggie?

Topicstarter
Op dinsdag 19 februari 2002 13:20 schreef raptorix het volgende:
@@identity
?? Whuh?

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Moeilijk he een help file bekijken.

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:53
code:
1
select @@identity from table

https://fgheysels.github.io/


  • B2
  • Registratie: April 2000
  • Laatst online: 11:01

B2

wa' seggie?

Topicstarter
Op dinsdag 19 februari 2002 13:39 schreef raptorix het volgende:
Moeilijk he een help file bekijken.
Ja moeilijk he meer dan 10 karakters typen.

Ik heb nu het volgende gedaan:
PHP:
1
2
3
4
<?
$qid = dbquery(" SELECT MAX(id) FROM products");
$product_list= mssql_result($qid,0);
?>

Alleen dan krijg ik een Resource index 2 terug. terwijl dit onder MySQL omstandigheden wel zou moeten werken.
Maar een SELECT @@identity zou moeten helpen?

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:53
Ja, die identity zou moeten werken.

Mocht je nu eens de moeite doen om te kijken in die helpfile zoals raptorix zei, dan was je al veel vlugger geholpen.

https://fgheysels.github.io/


Verwijderd

Op dinsdag 19 februari 2002 13:15 schreef D2k het volgende:
select MAX(id) na het invoeren?
Lijkt mij niet zo heel netjes. Er bestaat altijd een mogelijkheid dat er nadat je het product hebt ge-insert er nog een product wordt ge-insert door iemand anders, waardoor je nu een verkeerde id ophaalt.

  • B2
  • Registratie: April 2000
  • Laatst online: 11:01

B2

wa' seggie?

Topicstarter
Ok heb nu een SELECT @@IDENTITY AS 'Identity' query achter m'n Insert statements.
Dit werkt, en via Query analyser krijg ik netjes result bv 20 terug.
alleen nu wil ik dat het result (die 20) dus in een php variabele komt.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
$qid = db_query("INSERT blabla
            SELECT @@IDENTITY AS 'Identity'");

/* get the product id that was just created */

$product_id = 

/* add this product under the specified categories */
for ($i = 0; $i < count($frm["categories"]) $i++ {
    $qid = db_query("
    INSERT INTO products_categories (category_id, product_id)
    VALUES ('{$frm["categories"][$i]}', '$product_id')
    ");
?>

Hoe krijg ik nu $product_id gevult met de indentity van het product?
Ik heb al een aantal dingen geprobeerd met db_fetch etc.. maar hij blijf leeg :'(

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

uhm? waar haal je die variabele dan tevoorschijn?
ik zie hem enkel in een table verdwijnen :? ik zou zeggen: doe een query om die var te achterhalen en dan die insert blabla...

Klaar voor een nieuwe uitdaging.


  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Je moet ook een stored procedure maken die een insert doet en dan gewoon een select @@identity doet, en je hoeft niet gelijk zo een grote bek op te zetten, het staat LETTERLIJK in de sqlserver online books, als je ff kijkt bij @@identity staat er dit:

INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES ('Accountant',12,125)
SELECT @@IDENTITY AS 'Identity'
Pagina: 1