-3

谁能帮我调试这个问题?这是我想从 cron 运行的 php 脚本的一部分。我一直在看它,但无法弄清楚出了什么问题。以下行抛出 PHP 错误“PHP Parse error: syntax error, unexpected T_LNUMBER in... on line...”

$sqlreadstmt = $db->query("
select distinct 
rsdata.rs_variant,
rsdata.weeknumber,
rsdata.rs_moduleid,
rsdata.rs_objectidentifier,
trdata.tr_objectidentifier,
trdata.tr_testversion,
trdata.tr_plannedgate,
trdata.tr_vnvmethod,
testatussequence.tesequencenr,
trdata.tr_testexecutionstatus 
from rsdata,trdata,module,variantgates,testatussequence 
where rsdata.weeknumber="1339" 
and rsdata.rs_moduleid = module.moduleid 
and rsdata.weeknumber = trdata.weeknumber 
and rsdata.rs_reviewstatus != "Obsolete" 
and rsdata.rs_reviewstatus != "Rejected" 
and rsdata.rs_introbjectidentifieralllevels != "" 
and rsdata.rs_introbjectidentifieralllevels != "Unknown" 
and find_in_set(trdata.tr_objectidentifier, (select rsdata.rs_introbjectidentifieralllevels)) 
and trdata.tr_plannedgate != "" 
and trdata.tr_plannedgate != "Unknown" 
and trdata.tr_plannedgate = variantgates.gate 
and trdata.tr_variant = variantgates.variant 
and trdata.tr_testexecutionstatus = testatussequence.testatus 
order by 
rs_variant ASC,
weeknumber ASC,
rs_moduleid ASC,
rs_objectidentifier ASC,
tr_testversion ASC,
tr_plannedgate ASC,
tr_vnvmethod ASC,
tesequencenr DESC;
");
4

2 回答 2

5

你能试试这个吗?

$sqlreadstmt = $db->query("
select distinct 
rsdata.rs_variant,
rsdata.weeknumber,
rsdata.rs_moduleid,
rsdata.rs_objectidentifier,
trdata.tr_objectidentifier,
trdata.tr_testversion,
trdata.tr_plannedgate,
trdata.tr_vnvmethod,
testatussequence.tesequencenr,
trdata.tr_testexecutionstatus 
from rsdata,trdata,module,variantgates,testatussequence 
where rsdata.weeknumber='1339' 
and rsdata.rs_moduleid = module.moduleid 
and rsdata.weeknumber = trdata.weeknumber 
and rsdata.rs_reviewstatus != 'Obsolete' 
and rsdata.rs_reviewstatus != 'Rejected' 
and rsdata.rs_introbjectidentifieralllevels != '' 
and rsdata.rs_introbjectidentifieralllevels != 'Unknown' 
and find_in_set(trdata.tr_objectidentifier, (select rsdata.rs_introbjectidentifieralllevels)) 
and trdata.tr_plannedgate != '' 
and trdata.tr_plannedgate != 'Unknown' 
and trdata.tr_plannedgate = variantgates.gate 
and trdata.tr_variant = variantgates.variant 
and trdata.tr_testexecutionstatus = testatussequence.testatus 
order by 
rs_variant ASC,
weeknumber ASC,
rs_moduleid ASC,
rs_objectidentifier ASC,
tr_testversion ASC,
tr_plannedgate ASC,
tr_vnvmethod ASC,
tesequencenr DESC;
");

在双撇号内,您不能使用其他双撇号 " 而不转义它们。

否则在 sql 中,简单撇号是字符串分隔符。

于 2014-01-02T20:29:39.003 回答
4

看起来问题在于您的 SQL 语句中有双引号,这会关闭用于查询的字符串。尝试转义 SQL 语句中的双引号,或者只使用单引号。

于 2014-01-02T20:29:22.207 回答