我有一个基于PHP的站点,需要从我办公室内部网内托管的mssql服务器中提取一些数据。我已经编写了sql来提取这些数据,从逻辑上讲它完美无缺。在Windows机器上测试期间,我的代码返回我需要的所有数据。
但是,当我将相同的查询放入php时,使用PHP DBO dblib,我得不到返回(即false),这表明存在一些语法问题。现在回答任何简单的问题,我可以没有问题连接到数据库,我的许多其他查询工作(从相同的数据库,甚至相同的表),但这个特定的slq似乎不起作用。
经过进一步调查,我逐渐意识到'php_mssql'与'bigint'数据类型相关可能存在限制。我在php.net上读过,发现this 它看起来好像没有预定义的常量来处理8位int。
只是为了澄清,这是我试图运行的SQL:
SELECT dbo.Vehicle.VehicleID, dbo.Vehicle.CarNumber,
dbo.Driver.DriverID, dbo.Driver.DriverNumber, dbo.Driver.DriverName,
dbo.VehicleJobHistory.BookingID, dbo.VehicleJobHistory.PickupSuburb,
dbo.VehicleJobHistory.DestinationSuburb,
dbo.VehicleJobHistory.ReasonDispatchedToCar,
dbo.VehicleJobHistory.TimeJobRequired,
dbo.VehicleJobHistory.TimeCarAcceptedJob,
dbo.VehicleJobHistory.TimeCarPickedUp,
dbo.VehicleJobHistory.TimeCarCompletedJob,
dbo.VehicleJobHistory.KmToPickup, dbo.VehicleJobHistory.KmOfJob,
dbo.DispatchStatus.Alias
FROM (dbo.tblDispatch
RIGHT JOIN ((dbo.Vehicle
LEFT JOIN dbo.VehicleJobHistory ON dbo.Vehicle.VehicleID =
dbo.VehicleJobHistory.VehicleID) LEFT JOIN dbo.Driver ON
dbo.VehicleJobHistory.DriverID = dbo.Driver.DriverID) ON
dbo.tblDispatch.BookingID = dbo.VehicleJobHistory.BookingID)
LEFT JOIN dbo.DispatchStatus ON dbo.tblDispatch.StatusID =
dbo.DispatchStatus.DispatchStatusID
WHERE (dbo.Vehicle.VehicleID = ’$vid’) AND
(dbo.VehicleJobHistory.TimeJobRequired Between ‘$DateFrom’ AND
‘$DateTo’)
问题在于使用bookingID进行连接,在SQL Server上将其定义为'bigint'
基本上我想知道是否有可用的工作?