Sql server 2008 ZF 2 MS SQL Server更新时出错1934
尝试更新表中的行时出错Sql server 2008 ZF 2 MS SQL Server更新时出错1934,sql-server-2008,zend-framework2,Sql Server 2008,Zend Framework2,尝试更新表中的行时出错 $adapter = new Zend\Db\Adapter\Adapter([ 'driver' => 'Pdo_dblib', 'hostname' => 'SRVSQL', 'database' => 'TDEV', 'username' => 'sa', 'password' => 'xxxx' ]); $update = $sql->update('F_ARTFOURNISS')
$adapter = new Zend\Db\Adapter\Adapter([
'driver' => 'Pdo_dblib',
'hostname' => 'SRVSQL',
'database' => 'TDEV',
'username' => 'sa',
'password' => 'xxxx'
]);
$update = $sql->update('F_ARTFOURNISS')
->set([
'AF_RefFourniss' => $fournRef,
'AF_PrixAch' => $fournPxAchat,
'AF_Remise' => $fournRemise,
'AF_CodeBarre' => $fournGenCode
])
->where(['AR_Ref' => $ref]);
try {
$statement = $sql->prepareStatementForSqlObject($update);
$results = $statement->execute();
} catch (Exception $e) {
echo $e->getMessage() . "\n";
}
当我尝试执行上述代码时,我得到以下错误代码:
Statement could not be executed (HY000 - 1934 - General SQL Server error: Check messages from the SQL Server [1934] (severity 16) [(null)] - -1 - 16)
我还尝试在执行查询之前添加一些参数:
$adapter->query("SET ANSI_WARNINGS ON");
$adapter->query("SET ANSI_PADDING ON");
$adapter->query("SET ANSI_NULLS ON");
$adapter->query("SET QUOTED_IDENTIFIER ON");
$adapter->query("SET CONCAT_NULL_YIELDS_NULL ON");
这是下面生成的查询字符串的示例:
更新[F_ARTICLE]集合[AR_Design]=“Azertyouio”,“FA_Codefamile]=“J”,“AR_PrixAch]=“153.47”,“AR_PrixVen]=“145.7965”,“AR_Coef]=“0.95”,“AR_PoidsNet]=“0”,“AR_UnitePoids]=“2”,其中[AR_Ref]=“801-0198”
当我将这一行粘贴到SQLServerManagementStudio中时,它工作正常。它在我的项目中不起作用
感谢您的帮助经过几次研究,我在这里找到了解决方案: 因此,我将代码更新为:
$conn->executeQuery("
SET
ANSI_NULLS,
QUOTED_IDENTIFIER,
CONCAT_NULL_YIELDS_NULL,
ANSI_WARNINGS,
ANSI_PADDING
ON;
");