Foros del Web » Programando para Internet » PHP »

el id del insert en MS SQL Server (mssql)

Estas en el tema de el id del insert en MS SQL Server (mssql) en el foro de PHP en Foros del Web. Hola a todos: estoy trabajando con php y sql server y hago un insert en una tabla asi $sql = "INSERT INTO noticias (Titulo, Contenido, ...
  #1 (permalink)  
Antiguo 14/02/2006, 12:29
Avatar de mauricio2004  
Fecha de Ingreso: marzo-2004
Mensajes: 264
Antigüedad: 13 años, 8 meses
Puntos: 0
Sonrisa el id del insert en MS SQL Server (mssql)

Hola a todos:

estoy trabajando con php y sql server y hago un insert en una tabla asi

$sql = "INSERT INTO noticias
(Titulo, Contenido, FechaPublicacion, FechaExpiracion, Autor, Imagen, Corporativo, Orden)
VALUES
('$titulo',' $contenido', $fechapublicacion, $fechaexpiracion, '$autor', '$imagen', '$corporativo', $orden)";

$result = mssql_query($sql);

Lo inserta bien, pero necesito saber el ID del registro que se ingreso, en mysql era muy facil con mysql_insert_id, pero mssql no se como hacerlo

Cualquier ayuda se lo agradeceria mucho

Saludos
  #2 (permalink)  
Antiguo 14/02/2006, 13:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si no encuentras función nativa de PHP .. debes resolver el problema desde SQL própio del motor de BBDD que uses.

Te recomiendo preguntar en el foro de BBDD. También aclara si usas algún campo "autonumérico" (no se vé a simple vista) .. o cual es tu clave fornánea que usaras para relacionar tus tablas (si es para eso para lo que necesitas ese "último ID") ..

Un saludo,
  #3 (permalink)  
Antiguo 14/02/2006, 13:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Mirando la documentación de MS SQL funciones de PHP sale en los comentarios de los usuarios esta función:

Cita:
Erick Robertson
20-Aug-2005 04:58
Some helpful functions. Pretty simple, but very useful.

Código PHP:
<?
function mssql_begin_transaction() {
  
mssql_query("BEGIN TRANSACTION");
}

function 
mssql_commit() {
  
mssql_query("COMMIT");
}

function 
mssql_rollback() {
  
mssql_query("ROLLBACK");
}

function 
mssql_insert_id() {
  
$id "";

  
$rs mssql_query("SELECT @@identity AS id");
  if (
$row mssql_fetch_row($rs)) {
   
$id trim($row[0]);
  }
  
mssql_free_result($rs);

  return 
$id;
}
Intenta usarla (mssql_insert_id()) .. Por mi parte desconozco el SQL De SQL Server y su própio lenguaje .. esos @@ si no me confundo hacen referencias a funciones/procedimientos o equivalente almacenados o própios de SQL Server.

Un saludo,
  #4 (permalink)  
Antiguo 14/02/2006, 13:05
Avatar de mauricio2004  
Fecha de Ingreso: marzo-2004
Mensajes: 264
Antigüedad: 13 años, 8 meses
Puntos: 0
Como dices cluster la llave es un campo autonumérico, se va incrementando automaticamente cuando se ingresa un registro,

puede que sea mas facil asi??

Saludos

Mauricio
  #5 (permalink)  
Antiguo 14/02/2006, 13:07
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 13 años
Puntos: 34
Desde sql server podes hacer después del insert:
declare @id = int;
set @id = @@identity;
O bien:
set @id = scope_identity()
select @id as id
Esto dentro del mismo query separado por ; luego lo levantas como un resurse común.

Sino, hacer un query después del insert desde php, tipo "Select max(ID) from tabla1".

Espero te sea útil.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:52.