为什么这个PHP代码不完全执行SqL Server查询?

时间:2014-04-09 20:33:14

标签: php sql sql-server sql-server-2012

我遇到了这个php代码的问题,问题是我试图在Sql Server表上插入1000行,但代码只插入了80行,我不知道为什么,我已经单独执行了Sql Server程序在Sql Server Management Studio上运行良好,但是当我尝试从php执行它不起作用时,我还将“远程查询超时”设置为“无超时”。这是我正在使用的代码。请帮助。

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 SERVER STORED PROCEDURE

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 @id=@id+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

1 个答案:

答案 0 :(得分:0)

可能是PHP超时,试试

 set_time_limit(0);

位于PHP文件的顶部。