INSERT INTO sqlsrv_query语句不起作用

时间:2013-06-17 13:03:10

标签: php sql-server

使用sqlsrv_query命令时,我可以从MSSQL服务器请求数据。 这有效 但是!

当我想添加数据时,它会返回错误[error:array]。

我用的代码是:

$tsql= "INSERT INTO dbo.VERLOF_events (id,
                username,
                soort,
                afdeling,
                description,
                evdate,
                trdate) 
                VALUES
                (?, ?, ?, ?, ?, ?, ?)";
                $var = array('', $username, $soort, $afdeling,     $description, $evdate, $trdate);
                if (!sqlsrv_query($conn, $tsql, $var))
                     {
                die('Error: ' . sqlsrv_errors());
                     }
                echo "1 record added"; 

数组值在POST语句中设置。

$afdeling = $row['Afdeling'];
$submit = @$_POST['submit'];
$description = @$_POST["description"];
$evdate = @$_POST["evdate"];
$trdate = @$_POST["trdate"];
$username = @$_SESSION['username'];
$soort = @$_POST['Dagen'];

为什么会返回数组错误? 我查了一下但找不到问题返回错误。

感谢任何帮助!

1 个答案:

答案 0 :(得分:5)

问题可能是您尝试在id字段中添加空值。如果您使用自动编号在其上设置标识,则无需将其包含在查询中:

$tsql= "INSERT INTO dbo.VERLOF_events (
            username,
            soort,
            afdeling,
            description,
            evdate,
            trdate) 
            VALUES
            (?, ?, ?, ?, ?, ?)";
            $var = array($username, $soort, $afdeling,     $description, $evdate, $trdate);
            if (!sqlsrv_query($conn, $tsql, $var))
                 {
            die('Error: ' . sqlsrv_errors());
                 }
            echo "1 record added";