Es stellte sich heraus, dass das Problem mit den SET-Parametern zu tun hatte. Ich habe den folgenden Code von Here verwendet. So legen Sie fest, welche Optionen in SQL Server Management Studio festgelegt wurden (wo die Einfügung ausgeführt wurde). Wenn Sie dann jedes dieser Elemente vor der Insert-Anweisung in einem Exec platzieren, werden die Dinge wieder funktionieren. Ich musste nicht alle Optionen behalten, daher zeige ich unten diejenigen, die benötigt wurden, um es zum Laufen zu bringen.
DECLARE @options INT
SELECT @options = @@OPTIONS
PRINT @options
IF ((1 & @options) = 1) PRINT 'DISABLE_DEF_CNST_CHK'
IF ((2 & @options) = 2) PRINT 'IMPLICIT_TRANSACTIONS'
IF ((4 & @options) = 4) PRINT 'CURSOR_CLOSE_ON_COMMIT'
IF ((8 & @options) = 8) PRINT 'ANSI_WARNINGS'
IF ((16 & @options) = 16) PRINT 'ANSI_PADDING'
IF ((32 & @options) = 32) PRINT 'ANSI_NULLS'
IF ((64 & @options) = 64) PRINT 'ARITHABORT'
IF ((128 & @options) = 128) PRINT 'ARITHIGNORE'
IF ((256 & @options) = 256) PRINT 'QUOTED_IDENTIFIER'
IF ((512 & @options) = 512) PRINT 'NOCOUNT'
IF ((1024 & @options) = 1024) PRINT 'ANSI_NULL_DFLT_ON'
IF ((2048 & @options) = 2048) PRINT 'ANSI_NULL_DFLT_OFF'
IF ((4096 & @options) = 4096) PRINT 'CONCAT_NULL_YIELDS_NULL'
IF ((8192 & @options) = 8192) PRINT 'NUMERIC_ROUNDABORT'
IF ((16384 & @options) = 16384) PRINT 'XACT_ABORT'
Hier sind die Optionen, die ich benötigen endete:
$dbPDO->exec("SET ANSI_WARNINGS ON");
$dbPDO->exec("SET ANSI_PADDING ON");
$dbPDO->exec("SET ANSI_NULLS ON");
$dbPDO->exec("SET QUOTED_IDENTIFIER ON");
$dbPDO->exec("SET CONCAT_NULL_YIELDS_NULL ON");
Update: Es scheint Einschränkungen FK in den folgenden Fehlern geführt. Das obige behebt diesen Fehler ebenfalls.
SQLSTATE[HY000]: General error: 8624 General SQL Server error: Check messages from the SQL Server [8624] (severity 16) [(null)]
Möglicherweise müssen Sie die Einstellungen mit PHP schreiben. Bsp: $ dbPDO-> exec ("SET ANSI_WARNINGS ON"); – jjwdesign
Wo soll ich das hinstellen? Auf einer bestimmten Datei oder auf dem Server? – bleykFaust