繁体   English   中英

使用通用表表达式查询

[英]Use common table expression query

我有一个通用的表表达式,可以在mssql编辑器上正常工作。 但是,当我在PHP中使用相同的填充字符串变量并使用odbc_exec($dbhandle,$query )它不返回任何行。 没有引发任何错误。 这是对PHP的限制吗? 各种其他表上的其他选择查询运行良好。 问题仅在于CTE声明。

我知道这是一个老问题,但是没有得到回答,这是Google的高排名结果,所以我认为自己会参与其中。

查询MS SQL服务器的本机PHP方法都不支持公用表表达式(“ WITH”子句)。 这些包括mssql_ *库和odbc_ *库。

这是由于MS SQL处理CTE的方式(通过创建要执行的宏)。 好消息是,Microsoft的库(sqlsrv_ *)确实支持CTE。

在创建和使用连接,简单查询,准备好的语句等方面,sqlsrv_ *库的操作与mssql_ *相同。它们几乎是对MS SQL服务器使用mssql_ *或odbc_ *的“直接替代”,并且速度明显更快启动。

您可以从此链接获取sqlsrv库。 在撰写本文时,SQL Server 2.x很好,但是SQL 2012需要3.x。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM