我有一个基于 PHP 的站点,需要从我办公室内网中托管的 mssql 服务器中提取一些数据。我已经编写了 sql 来提取这些数据,并且在逻辑上它工作得很好。在 Windows 机器上进行测试期间,我的代码返回了我需要的所有数据。
但是,当我使用 PHP DBO dblib 将相同的查询放入 php 时,我没有得到任何返回(即 false),这表明存在一些语法问题。现在要回答任何简单的问题,我可以将任何问题连接到数据库,并且我的许多其他查询都可以工作(来自同一个数据库,甚至是同一个表),但是这个特定的 slq 似乎不起作用。
经过进一步调查,我意识到与“bigint”数据类型相关的“php_mssql”可能存在限制。我在 php.net 上进行了阅读,发现它 看起来好像没有预定义的常量来处理 8bit 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”
基本上我想知道是否有任何可用的解决方法?