【发布时间】:2015-05-26 03:49:00
【问题描述】:
我有一个像这样的子查询的查询
SELECT ...
FROM (SELECT ...
FROM ...
GROUP BY ...) as speedLimitCalc INNER JOIN
(SELECT ...
FROM date a INNER JOIN HOURLY_TEST b ON a.[FULL_DAY_DT] = b.DATE
WHERE (b.DATE BETWEEN '".$date_s."' AND '".$date_e."')
AND HOUR BETWEEN ".$time_s." AND ".$time_e."
AND(LKNO BETWEEN '".$lkno_s."' and '".$lkno_e."')
AND RDNO= '".$rdno."'
AND pub_hol IN (".$pubholquery.")
AND school_hol IN (".$schholquery.")
AND day_no IN (".$dayquery.")
GROUP BY RDNO, LKNO, PRESCRIBED_DIRECTION, CWAY_CODE) as origtable ON ...
,(SELECT ...
FROM [Dim_date]
WHERE (FULL_DAY_DT BETWEEN '".$date_s."' AND '".$date_e."')
AND pub_hol IN (".$pubholquery.")
AND school_hol IN (".$schholquery.")
AND day_no IN (".$dayquery.") ) as c
ORDER BY ...
我在内部查询 where 子句中插入变量。
我正在尝试使用 odbc_prepare 和 odbc_execute 对此查询进行参数化,但是我遇到了绑定变量的问题。目前,当我使用以下
$result = odbc_prepare($connection, $query);
odbc_execute($result)or die(odbc_error($connection));
运行这个查询,一切正常。但是,当我尝试绑定变量时,例如
AND RDNO= ?
...
odbc_execute($result, array($rdno))or die(odbc_error($connection));
我收到以下错误消息。
PHP 警告:odbc_execute() [/phpmanual/function.odbc-execute.html]:SQL 错误:[Microsoft][ODBC SQL Server Driver]参数号无效,SQLDescribeParameter 中的 SQL 状态 S1093
我的猜测是因为我在子查询中绑定了一个变量,因为当 Where 子句位于顶部 Select 查询中时,此过程有效。
我想知道以前是否有其他人遇到过这个问题,以及他们是如何解决的?谢谢
【问题讨论】:
标签: php sql-server odbc