sql声明结构如何在php中运行?
我是SQL和PHP的新手,执行SQL的方式如下:sql声明结构如何在php中运行?,php,sql,sql-server,Php,Sql,Sql Server,我是SQL和PHP的新手,执行SQL的方式如下: $query = 'SELECT session, id FROM AnalysePageview WHERE session="'.$sessionID.'"ORDER BY id DESC LIMIT 1'; $result = mysqli_query($link, $query); DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(
$query = 'SELECT session, id FROM AnalysePageview WHERE session="'.$sessionID.'"ORDER BY id DESC LIMIT 1';
$result = mysqli_query($link, $query);
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT ',' + QUOTENAME(description)
from customerrewards
group by description, typeid
order by typeid
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT name,' + @cols + ' from
(
select c.name,
cr.description,
r.typeid
from customers c
left join rewards r
on c.id = r.customerid
left join customerrewards cr
on r.typeid = cr.typeid
) x
pivot
(
count(typeid)
for description in (' + @cols + ')
) p '
execute(@query)
现在我在这个论坛上看到了这样的东西:
$query = 'SELECT session, id FROM AnalysePageview WHERE session="'.$sessionID.'"ORDER BY id DESC LIMIT 1';
$result = mysqli_query($link, $query);
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT ',' + QUOTENAME(description)
from customerrewards
group by description, typeid
order by typeid
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT name,' + @cols + ' from
(
select c.name,
cr.description,
r.typeid
from customers c
left join rewards r
on c.id = r.customerid
left join customerrewards cr
on r.typeid = cr.typeid
) x
pivot
(
count(typeid)
for description in (' + @cols + ')
) p '
execute(@query)
如果我把它放在$query=DECLARE@cols中。。。我会得到一个错误
如何在PHP中使用此声明?恐怕无法运行此SQL 有关更多详细信息,请参阅: 仅允许在BEGIN中声明。。。结束复合语句 而且必须在开始时,在任何其他声明之前
这是否意味着没有使用mysqli_query的pivot表?似乎MySQL中的复杂语句只能在过程/函数中使用