我遇到了这个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
答案 0 :(得分:0)
可能是PHP超时,试试
set_time_limit(0);
位于PHP文件的顶部。