7

私はこの配列を持っています

$REV = Array
(
    0 => 240,
    1 => 241,
    2 => 242,
    3 => 243,
    4 => 249
);

今のところ、次のコードを使用して挿入し、各配列の要素を $id、$userID、Type、Date の行に格納しました

if (!empty($REV)) {
    foreach ($REV as $val_rev) {
        $values_rev[] = "('" . $ID . "','REV','" . $val_rev . "','" . $IDUSER . "',GETDATE())";
    }
    $values_rev_insert = implode(',', $values_rev);

    $query_rev = "insert into dbo.CCLine (ID,CCType,CSID,IdUSer,DateCreated)values" . $values_rev_insert;
    mssql_query($query_rev);
}

しかし、私が欲しいのは、このストアドプロシージャを使用できることですが、spを使用して一度に挿入する方法がわかりません:

$stmt = mssql_init('sp_insertRev');
mssql_bind($stmt, '@ID', $ID, SQLINT4);
mssql_bind($stmt, '@CCType', 'REV', SQLVARCHAR);

配列はここでは機能しません

mssql_bind($stmt, '@CSID', $val_rev, SQLINT4);//An example 

mssql_bind($stmt, '@IdUSer', $IDUSER, SQLCHAR);
$result = mssql_execute($stmt);

この SP をアレイで使用するにはどうすればよいですか

CREATE PROCEDURE [dbo].[sp_HCCInsert]
            @ID int
           ,@CCType varchar(10)
           ,@CSID varchar(10)
           ,@IdUSer char(15)

AS
BEGIN

    SET NOCOUNT ON;

    DECLARE @CCID as INT

    INSERT INTO [dbo].[CCLine]
           ([ID]
           ,[CCType]
           ,[CSID]
           ,[IdUSer]
           ,[DateCreated])
     VALUES
           (@ID
           ,@CCType
           ,@CSID
           ,@IdUSer
           ,GETDATE())


      SET @CCID = @@IDENTITY

      Select @CCID as CCID


END
4

3 に答える 3

0
$sql  = "INSERT INTO table column(c1,c2) 
         VALUES('d1','d2'),('dd1','dd2'),('ddd1','ddd2')";// this is the basic sql command

$data = array('data1','data2','data3');
$data = '('.implode(', ',$data).')';
$sql  = "INSERT INTO table column(c1,c2) VALUES $data";

$data = array(array('1','2','3'),array('4','5','6'),array('7','8','9'));
$xa = array();
$a = 0;
foreach($data as $dt)
{
    $xa[$a] =   '('.implode(',',$dt).')';
    ++$a;
}
$data = '('.implode(',',$xa).')';
$sql  = "INSERT INTO table column(c1,c2) VALUES $data";
于 2013-07-02T18:02:04.570 に答える