Php SQL SERVER(如果有)
我有一个在PHP中运行的查询,它应该检测数据库中已经存在的记录,如果它正在更新它,或者插入它,当它插入数据时,这个查询非常有效,但是我认为当它在更新时,它会给我这个错误 SQL错误:[Microsoft][ODBC SQL Server驱动程序][SQL Server]转换 将日期和/或时间从字符串转换为SQL时失败 SQLExecDirect中的状态22008 我不知道为什么它会这样做,因为数据与插入数据完全相同,插入数据工作正常。为什么会这样Php SQL SERVER(如果有),php,sql-server,Php,Sql Server,我有一个在PHP中运行的查询,它应该检测数据库中已经存在的记录,如果它正在更新它,或者插入它,当它插入数据时,这个查询非常有效,但是我认为当它在更新时,它会给我这个错误 SQL错误:[Microsoft][ODBC SQL Server驱动程序][SQL Server]转换 将日期和/或时间从字符串转换为SQL时失败 SQLExecDirect中的状态22008 我不知道为什么它会这样做,因为数据与插入数据完全相同,插入数据工作正常。为什么会这样 IF EXISTS (SELECT count(
IF EXISTS
(SELECT count(DocumentNo) AS COUNT
FROM SalesOrders
WHERE (DocumentNo = '$OrderNo'))
UPDATE SalesOrders
SET RequestedDeliveryDate ='$RequestDelivery',
SupplierDocumentNo ='$SupplierDocumentNo',
SupplierAccountName = '$SupplierAccountName',
DispatchName ='$DispatchName'
WHERE (DocumentDate = '$OrderNo') ELSE
INSERT INTO SalesOrders (DocumentNo, DocumentDate, CustomerAccountName,PostalName, RequestedDeliveryDate, SupplierDocumentNo, SupplierAccountName,DispatchName)
VALUES ('$OrderNo',
'$OrderDate',
'$AccountName',
'$PostalName',
'$RequestDelivery',
'$SupplierDocumentNo',
'$SupplierAccountName',
'$DispatchName')
表格设计
Column Name Data Type Allow Null
ID int Unchecked
DocumentNo varchar(50) Checked
DocumentDate date Checked
CustomerAccountName varchar(100) Checked
PostalName varchar(100) Checked
RequestedDeliveryDate date Checked
ShipmentType varchar(50) Checked
Shipped int Checked
Collected int Checked
OrderComplete tinyint Checked
SupplierDocumentNo varchar(100) Checked
SupplierAccountName varchar(100) Checked
DispatchName varchar(100) Checked
HiddenStatus int Checked
用于提供插入/更新查询的查询结果
DocumentNo DocumentDate CustomerAccountName RequestedDeliveryDate PostalName SupplierDocumentNo SupplierAccountName Name
233555 05/03/2015 CompanyName 16/04/2015 CompanyName NULL NULL NULL
233531 04/03/2015 CompanyName 13/04/2015 CompanyName NULL NULL NULL
233475 02/03/2015 CompanyName 09/04/2015 NULL NULL NULL NULL
233561 05/03/2015 CompanyName 07/04/2015 CompanyName NULL NULL NULL
233474 02/03/2015 CompanyName 02/04/2015 NULL NULL NULL NULL
233379 24/02/2015 CompanyName 31/03/2015 NULL NULL NULL NULL
233383 24/02/2015 CompanyName 31/03/2015 NULL NULL NULL NULL
233387 24/02/2015 CompanyName 31/03/2015 NULL NULL NULL NULL
233391 24/02/2015 CompanyName 31/03/2015 NULL NULL NULL NULL
233397 24/02/2015 CompanyName 31/03/2015 NULL NULL NULL NULL
233401 24/02/2015 CompanyName 31/03/2015 NULL NULL NULL NULL
233404 24/02/2015 CompanyName 31/03/2015 NULL NULL NULL NULL
233408 24/02/2015 CompanyName 31/03/2015 NULL NULL NULL NULL
233412 24/02/2015 CompanyName 31/03/2015 NULL NULL NULL NULL
谢谢,但是您能提供导致查询失败的
$RequestDelivery
的确切值吗?示例数据中的值就是确切值,php中的函数循环遍历每个结果,然后根据结果是否已存在进行更新/插入使用SQL Profiler查看出错时向SQL Server发送的命令。也许错误的原因很明显。