如何在PHP中使用PDO关闭SQL Server中的ANSI_WARNINGS
?
除非我的访问者使用支持HTML 5的现代浏览器,否则我无法将最大长度设置为textareas,这意味着当文本框中的数据太大时,我的查询会返回错误。结果,我需要关闭ANSI_WARNINGS
以强制SQL Server截断任何太大而无法插入数据库字段的文本...
我尝试过运行以下查询:
$this->mssql->sql("SET ANSI_WARNINGS = OFF");
然后立即执行插入查询:
$this->mssql->sql("INSERT INTO...");
忽略$this->mssql->sql
部分,这只是调用我自己的PDO包装类
答案 0 :(得分:1)
尝试
SET ANSI_WARNINGS OFF;
没有=
标志
<强>更新强>
刚刚从MSDN文档中找到了这个。如果ARITHABORT为ON,则设置ANSI_WARNINGS ON / OFF不会生效。你也需要关闭ARITHABORT。见下文......
<强>测试强>
SET ARITHABORT OFF;
GO
SET ANSI_WARNINGS OFF;
GO
SELECT 1/0 --<-- Returns NULL instead of arithmetic overflow error.
GO
DECLARE @TABLE TABLE (VAL VARCHAR(2))
INSERT INTO @TABLE VALUES ('Long String') --<-- inserts data and truncates extra bits
SELECT * FROM @TABLE
GO