2014-04-09 1 views
0

이 PHP 코드에 문제가 있습니다. 문제는 Sql Server 테이블에 1000 개의 행을 삽입하려고했지만 코드가 80 개의 행을 삽입했는데 이유가 무엇인지 모르겠지만 SQL Server 프로 시저를 단독으로 실행했습니다. SQL Server Management Studio와 작동하지만 PHP에서 실행하려고하면 작동하지 않습니다. "원격 쿼리 시간 초과"를 "제한 시간 없음"으로 설정했습니다. 여기에 제가 사용하고있는 코드가 있습니다. 도와주세요.이 PHP 코드가 SqL Server 쿼리를 완전히 실행하지 않는 이유는 무엇입니까?

PHP 코드

<?php 

$myServer = "servername"; 
$conex=array("Database"=>"database"); 
$conn = sqlsrv_connect ($myServer, $conex) ; 

if (sqlsrv_begin_transaction($conn) === false) { 
die(print_r(sqlsrv_errors(), true)); 
} 

$sql="insertarDistrito_Sql ?"; 
$params=array(&$_POST(1000)); 

$stmt=sqlsrv_query($conn, $sql, $params); 


if($stmt) { 
sqlsrv_commit($conn); 
echo "Transaction committed.<br />"; 
} else { 
sqlsrv_rollback($conn); 
echo "Transaction rolled back.<br />"; 
} 
?> 

SQL 서버에 절차

CREATE procedure [dbo].[insertarDistrito_Sql] 
@cant int 
As 
Declare @i int 
Declare @w int 
Declare @id int 
SET @i = 1 
set @w=1 
set @id=1 

if (Select count(*) from distrito)> 0 
begin 
    Set @id= (select max([id_distrito]) from [dbo].[distrito]) 
    set @[email protected]+1 
end 
WHILE(@i <= @cant) 
BEGIN  

INSERT INTO [dbo].[distrito] ([id_distrito], [id_warehouse], [d_nombre],  [d_direccion], [d_calle1], 
         [d_calle2],[d_barrio], [d_fecha_creacion],[d_capacidad]) 
          VALUES(@id,@w,newid(),newid(),newid(),newid(),newid(), '12/12/2014',rand()) 
SET @i += 1   
set @id +=1  
END 

답변

0

그것은이 시간 초과되는 PHP 수 저장, 당신의 PHP 파일의 상단에

set_time_limit(0); 

을 넣어보십시오.

+0

시도했지만 작동하지 않았습니다. – mariofernip

관련 문제