任何人都可以帮我调试这个问题吗?这是我想从cron运行的php脚本的一部分。我一直在看它,但无法弄清楚出了什么问题。 以下行抛出PHP错误“PHP Parse错误:语法错误,意外T_LNUMBER在...在线......”
$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;
");
答案 0 :(得分: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中,简单的撇号是字符串分隔符。
答案 1 :(得分:4)
看起来问题是你的SQL语句中有双引号,它会关闭用于查询的字符串。尝试在SQL语句中转义双引号,或者只使用单引号。