I do not know if you can help me or my question is not understood, I leave it to you in the same way, I have the following error:
Warning: mssql_fetch_row () expects parameter 1 to be resource, boolean given in usr / home / FFFF / payment-card_paypal.php on line 111
The line itself is this:
/*************************************************
* ACTUALIZAR DATOS GRABAR TRAS VOLVER PAGO PAYPAL
* EXEC [dbo].[EnviosGrabarFormaDePago]
*************************************************/
/* Conectar con el procedimiento almacenado */
$stmt21 = mssql_init('EnviosGrabarFormaDePago');
/* Parametros pasados al procedimiento almacenado */
$ControlError = '';
$EnvioID = NULL;
$FormaPago = 37;
$FechaPago = date("Ymd");
$referencia = $_GET['tx'];
mssql_bind($stmt21, '@ControlError', $ControlError, SQLVARCHAR, true, false, 40);
mssql_bind($stmt21, '@EnvioID', $EnvioID, SQLINT1);
mssql_bind($stmt21, '@IdentificadorEnvio',$_GET['ie'],SQLVARCHAR,false,false,25);
mssql_bind($stmt21, '@FormaDePago', $FormaPago, SQLINT1);
mssql_bind($stmt21, '@FechaDePago', $FechaPago, SQLVARCHAR, false, false, 19);
mssql_bind($stmt21, '@ReferenciaPago', $referencia, SQLVARCHAR, false, false, 40);
mssql_bind($stmt21, '@MontoPago', $_GET['amt'], SQLFLT8);
/* Ejecutamos el procedimiento */
$resultado21 = mssql_execute($stmt21);
$row = mssql_fetch_row($resultado21); // Aqui esta el error
/* Liberar los recursos */
mssql_free_statement($stmt21);
In my DB it is like this
ALTER PROCEDURE [dbo].[EnviosGrabarFormaDePago]
-- Agregar los parámetros para el procedimiento almacenado aquí
@ControlError VARCHAR(max) OUTPUT,
@EnvioID INT,
@IdentificadorEnvio VARCHAR(25),
@FormaDePago INT,
@FechaDePago DATE,
@ReferenciaPago VARCHAR(40),
@MontoPago DECIMAL(10,2)
AS
BEGIN
-- Evita que se devuelva el mensaje que muestra el recuento del número de filas afectadas
SET NOCOUNT ON;
BEGIN TRANSACTION
BEGIN TRY
--INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago', '--------------------------------------')
--INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago @EnvioID : ', CAST(@EnvioID AS varchar(10)))
--INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago @IdentificadorEnvio : ', @IdentificadorEnvio)
--INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago @FormaDePago : ', CAST(@FormaDePago AS varchar(10)))
--INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago @ReferenciaPago : ', @ReferenciaPago)
--INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago @MontoPago : ', CAST(@MontoPago AS varchar(10)))
-- Inserte las declaraciones para el procedimiento aquí
SET @ControlError = ''
DECLARE @Comentario VARCHAR(800) = ''
DECLARE @UsuariosSistemaID TINYINT = 1
DECLARE @EstadoID TINYINT = 49
DECLARE @TotalEnvio DECIMAL(12,2) = 0
-- 36 TARJETA DE CREDITO
-- 37 PAYPAL
-- 0 PAGO NO COMPLETADO / ERROR / CANCELADO
IF @IdentificadorEnvio <> ''
BEGIN
SELECT @EnvioID = EnvioID, @TotalEnvio = Total FROM Envios WHERE IdentificadorEnvio = @IdentificadorEnvio
END
IF @EnvioID <> 0
BEGIN
SELECT @IdentificadorEnvio = IdentificadorEnvio, @TotalEnvio = Total FROM Envios WHERE EnvioID = @EnvioID
END
--INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago @EnvioID Verificado : ', CAST(@EnvioID AS varchar(10)))
IF @EnvioID <> 0 AND @FormaDePago <> 0
BEGIN
UPDATE Envios SET FormaDePago = @FormaDePago, FechaDePago = @FechaDePago, ReferenciaPago = @ReferenciaPago, MontoPago = @TotalEnvio
WHERE EnvioID = @EnvioID
SET @Comentario = 'Registro de Pago (Referencia) - ' + RTRIM(LTRIM(@ReferenciaPago))
SET @EstadoID = 49 -- 49 Registro de Pago
--INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago @EnvioID <> 0 AND @FormaDePago <> 0 : ', @Comentario)
END
--INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago @FormaDePago : ', CAST(@FormaDePago AS varchar(10)))
IF @FormaDePago = 0
BEGIN
SET @EstadoID = 39 -- 39 Envío Anulado
SET @Comentario = 'Envío Anulado - Registro el Pago'
END
IF @EnvioID <> 0
BEGIN
DECLARE @FechaEnviosSeguimientoInsert DATETIME = GETDATE()
DECLARE @ActualizaEstadoEnvio BIT = 1
EXECUTE [dbo].[EnviosSeguimientoInsert] @ControlError OUTPUT, @EnvioID, @Comentario, @UsuariosSistemaID, @EstadoID, @FechaEnviosSeguimientoInsert, @ActualizaEstadoEnvio
IF @MontoPago <> @TotalEnvio
BEGIN
SET @Comentario = 'Total de Transferencia : ' + RTRIM(LTRIM(CAST(@MontoPago AS VARCHAR(10)))) + ' - ' + 'Total del Envio : ' + RTRIM(LTRIM(CAST(@TotalEnvio AS VARCHAR(10))))
-- SET @ActualizaEstadoEnvio = 1
EXECUTE [dbo].[EnviosSeguimientoInsert] @ControlError OUTPUT, @EnvioID, @Comentario, @UsuariosSistemaID, @EstadoID, @FechaEnviosSeguimientoInsert, @ActualizaEstadoEnvio
END
END
COMMIT TRANSACTION
END TRY
BEGIN CATCH
-- Cierre del cursor
CLOSE cEnviosDetalle
-- Liberar los recursos
DEALLOCATE cEnviosDetalle
ROLLBACK TRANSACTION
-- Control de Errores
SET @ControlError = ERROR_MESSAGE();
INSERT INTO LogErrores (Numero, Mensaje, Procedimiento, Linea) VALUES (ERROR_NUMBER(), ERROR_MESSAGE(), ERROR_PROCEDURE(), ERROR_LINE())
END CATCH;
END
In what could be failing, I had more errors but I solved them, this is giving me headaches. It's a stored procedure, I forgot to say it.
Greetings,