Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema al ejecutar EXEC de procedimiento almacenado con PHP

Estas en el tema de Problema al ejecutar EXEC de procedimiento almacenado con PHP en el foro de PHP en Foros del Web. Hola a todos tengo el siguiente procedimiento almacenado en SQL-SERVER Cita: CREATE PROCEDURE [dbo].[spTABLE_TEMPORARY_PLAYER] @Player VARCHAR(10), @Name VARCHAR(50), @LastName VARCHAR(50), @Email VARCHAR(50), @Password VARCHAR(50), @Phone ...
  #1 (permalink)  
Antiguo 05/11/2013, 08:50
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Pregunta Problema al ejecutar EXEC de procedimiento almacenado con PHP

Hola a todos tengo el siguiente procedimiento almacenado en SQL-SERVER
Cita:
CREATE PROCEDURE [dbo].[spTABLE_TEMPORARY_PLAYER]
@Player VARCHAR(10),
@Name VARCHAR(50),
@LastName VARCHAR(50),
@Email VARCHAR(50),
@Password VARCHAR(50),
@Phone VARCHAR(50),
@Zip VARCHAR(50),
@Status VARCHAR(50)
AS
BEGIN
IF OBJECT_ID('tempDB..##PlayerTemp','U') IS NOT NULL
DROP TABLE ##PlayerTemp;

SELECT IdPlayer, Player, Name, LastName, Email, Password, IdBook
INTO ##PlayerTemp
FROM PLAYER
WHERE Player LIKE @Player AND Name LIKE @Name AND LastName LIKE @LastName AND
Email LIKE @Email AND Password LIKE @Password AND Phone LIKE @Phone AND
Zip LIKE @Zip AND Status = @Status
END
El procedimiento almacenado crea una tabla temporal y le introduce los datos retornados del SELECT. Luego en PHP trato de ejecutar este procedimiento almacenado de esta forma:
Código PHP:
$insTlb "EXEC [dbo].[spTABLE_TEMPORARY_PLAYER] '%".$account."%' '%".$firstName."%' '%".$lastName."%' '%".$email."%' '%".$pass."%' '%".$phNumber."%' '%".$zip."%' ".$activeAux;
     
$this->strData $this->strConnect->query($insTlb); 
Y despues de que se halla creado la tabla temporal, hago un select a su contenido de esta manera:
Código PHP:
$sql " SELECT TOP 10000 P.[IdPlayer], 
                  P.[Player], 
                  L.[username], 
                  L.[password], 
                  L.[ip_address], 
                  L.[login_date], 
                  L.[success],
                  D.[Description], 
                  B.[host_name],
                  P.[Name] + ' ' + P.[LastName] AS 'Name', 
                  P.Email 
 FROM [CPW-SQLP105].[BackOffice].[dbo].[login] L, [dbo].[##PlayerTemp] P, BOOK D, [CPW-SQLP105].[BackOffice].[dbo].[book] B
 WHERE D.[IdBook] = P.[IdBook] AND L.[book_id] = B.[book_id] AND D.[IdBook] = L.[book_id] AND 
       P.[player] = L.[username] AND B.[id] = L.[website_id] AND 
       L.[login_date] >= convert(datetime,('2013-01-30 20:10:11')) AND L.[login_date] <= convert(datetime,('2013-11-01 20:10:11'))
       AND L.[success] = 'N'"

Pero algo pasa al crear la tabla ya que en el log de apache me aparece este error:
Cita:
EXEC [dbo].[spTABLE_TEMPORARY_PLAYER] '%p1%' '%%' '%%' '%%' '%%' '%%' '%%' 'E'
[Mon Nov 04 18:09:10 2013] [error] PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 0 [FreeTDS][SQL Server]Statement(s) could not be prepared. (SQLPrepare[0] at /build/buildd-php5_5.3.3-7+squeeze14-i386-lt_SZ2/php5-5.3.3/ext/pdo_odbc/odbc_driver.c:206)' in /var/www/mas/mas-v1.0.2/class/class.search.php:71\nStack trace:\n#0 /var/www/mas/mas-v1.0.2/class/class.search.php(71): PDO->query('EXEC [dbo].[spT...')\n#1 /var/www/mas/mas-v1.0.2/results.php(13): search->searchAdvance('p1', '', '', '', '', '0', '', '2013/11/03 18:0...', '2013/11/04 18:0...', '', '', 'E', 'Y', false)\n#2 {main}\n thrown in /var/www/mas/mas-v1.0.2/class/class.search.php on line 71
NOTA: La linea 71 es donde esta el error y contiene esto: $this->strData = $this->strConnect->query($insTlb);
  #2 (permalink)  
Antiguo 05/11/2013, 09:21
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Problema al ejecutar EXEC de procedimiento almacenado con PHP

intentaste ejecutar el contenido de $insTlb en la consola del sql?
  #3 (permalink)  
Antiguo 05/11/2013, 09:32
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Exclamación Respuesta: Problema al ejecutar EXEC de procedimiento almacenado con PHP

Si amigo y me funciona al 100 % la verdad no se por que es ese problema

de hecho se me olvido poner el codigo que ejecuta a $sql
Código PHP:
$this->strData $this->strConnect->query($sql); 

Última edición por adryan310; 05/11/2013 a las 09:38
  #4 (permalink)  
Antiguo 05/11/2013, 15:46
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Pregunta Respuesta: Problema al ejecutar EXEC de procedimiento almacenado con PHP

Amigos he aplicado este codigo que viene en la documentacion de PHP y no me quiere funkar:
Código PHP:
$tsql  "{call dbo.spTABLE_TEMPORARY_PLAYER ('%".$account."%','%".$firstName."%','%".$lastName."%','%".$email."%','%".$pass."%','%".$phNumber."%','%".$zip."%','".$activeAux."')}";
     
$stmt  $this->strConnect->prepare($tsql, array(PDO::ATTR_CURSOR => PDO::FETCH_ASSOC));
     
$query $stmt->execute(); 
Alguna ayuda por favor ?

Etiquetas: almacenado, exec, procedimiento, select, sql, tabla
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 18:23.