Tắt vấn đề phải làm với tham số SET. Tôi đã sử dụng mã bên dưới thu được từ Here. Để xác định tùy chọn nào được đặt trong SQL Server Management Studio (nơi chèn đã hoạt động). Sau đó đặt mỗi người trong một exec trước khi chèn của tôi tuyên bố gây ra những thứ để làm việc một lần nữa. Tôi không cần phải giữ tất cả các lựa chọn, vì vậy dưới đây tôi cho thấy những cái cần thiết để làm cho nó hoạt động.
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'
Dưới đây là các tùy chọn tôi đã kết thúc cần:
$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");
Cập nhật: Dường như FK hạn chế dẫn đến các lỗi sau. Lỗi trên cũng đã sửa lỗi này.
SQLSTATE[HY000]: General error: 8624 General SQL Server error: Check messages from the SQL Server [8624] (severity 16) [(null)]
Bạn có thể cần phải viết cài đặt bằng cách sử dụng PHP. Ví dụ: $ dbPDO-> exec ("SET ANSI_WARNINGS ON"); – jjwdesign
Tôi sẽ đặt cái này ở đâu? Trên một tệp cụ thể hoặc trong máy chủ? – bleykFaust