Datos xml

Hola compañero,
Soy programador en php y trabajo con bases de datos mysql. En mi trabajo me han pedido que pase un archivo xml a mysql. No tengo ni idea de que hacer por lo que si me puedes ayudar me harías un gran favor.
Muchas gracias,
David
Respuesta
1
Tal vez te pueda ayudar aunque no sepa nada de php ni me mysql, yo trabajo con microsoft SQL y con asp, pero tal vez te pueda ayudar, el sql de microsoft si puede leer archivos xml como si fueran tablas y así importarlas a una verdadera tabla de sql
Hola,
antes de nada agradecerte el haber contestado tan rapido. Lo que necesito es que el mysql pueda leer el xml para importar esos datos al mysqlNo tengo ni idea de como lo puedo hacer por lo que cualquier ayuda me iría de fabula.
Muchas gracias
Espero que te sirva!. Si no sabes como usarlo, avisame y te explico paso a paso
/*
Updates language info for a user
Input parameter is XML formated list of items.
*/
CREATE Procedure PERS_update_Language_list
@UserId numeric,
@LanguageList ntext
as
DECLARE @idoc int;
EXEC sp_xml_preparedocument @idoc OUTPUT, @LanguageList;
declare @PersLanguageId numeric;
declare @LanguageId int;
declare @LanguageLevelId int;
declare crs cursor for
SELECT PersLanguageId, LanguageId, LanguageLevelId
FROM OPENXML (@idoc, '/ROOT/Language',1)
WITH ( PersLanguageId numeric,
LanguageId int,
LanguageLevelId int
);
begin tran _tran;
delete from persLanguages
where userId = @userId
and not PersLanguageId in (
SELECT PersLanguageId
FROM OPENXML (@idoc, '/ROOT/Language',1)
WITH ( PersLanguageId numeric,
LanguageId int,
LanguageLevelId int
)
where not persLanguageid is null
)
if( @@ERROR != 0 )
begin
rollback tran _tran
select '-1' as Result for xml raw
return -1;
end
open crs;
FETCH NEXT FROM crs into @PersLanguageId, @LanguageId, @LanguageLevelId
WHILE @@FETCH_STATUS = 0
BEGIN
declare @res int
if( @PersLanguageId is null )
exec @res = pers_add_language @userId, @LanguageId, @LanguageLevelId
else
exec @res = pers_update_Language @persLanguageId, @LanguageId, @LanguageLevelId
if @res < 0
begin
rollback tran _tran;
close crs;
deallocate crs;
select @res as Result for xml raw
return @res
end;
FETCH NEXT FROM crs into @PersLanguageId, @LanguageId, @LanguageLevelId
END
CLOSE crs
DEALLOCATE crs
commit tran _tran;
if( @@ERROR != 0 )
begin
select '-1' as Result for xml raw
return -1;
end
select 0 as Result for xml raw
return @userId;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas