Php 通过从Facileforms提取数据创建选择列表时出现语法错误
Facileforms使用_记录作为记录id,使用_子记录作为提交的数据。所以,我正在学习内在连接。然而,我得到了一个错误 错误消息是…Parse error:syntax error,在/home/snbrown/homestest.dreamhosters.com/components/com\u breezingforms/facileforms.process.php1227中出现意外的T_常量_ENCAPSED_字符串:第16行的eval'd代码 代码是Php 通过从Facileforms提取数据创建选择列表时出现语法错误,php,Php,Facileforms使用_记录作为记录id,使用_子记录作为提交的数据。所以,我正在学习内在连接。然而,我得到了一个错误 错误消息是…Parse error:syntax error,在/home/snbrown/homestest.dreamhosters.com/components/com\u breezingforms/facileforms.process.php1227中出现意外的T_常量_ENCAPSED_字符串:第16行的eval'd代码 代码是 <?php $user
<?php
$user = JFactory::getUser()->get('id');
JFactory::getDBO()->setQuery "SELECT
#_facileforms_records.id,
#_facileforms_subrecords.afname,
#_facileforms_subrecords.alname,
#_facileforms_subrecords.awebsite,
#_facileforms_subrecords.aphone,
#_facileforms_subrecords.aemail,
#_facileforms_subrecords.abrokerage
FROM #_facileforms_records;
INNER JOIN #_facileforms_subrecords;
ON #_facileforms_records.id=#_facileforms_subrecords.record;
WHERE (#_facileforms_subrecords.name = acustomerid AND value = "$userid");
AND (#_facileforms_subrecords.name = "formid AND value = 4)";
?>
当然,作为一个新加入的人,看起来我吃得太多了。任何帮助都将不胜感激。您有一些语法错误,很难在这里解释 你可以试试这个固定代码
下面是您更正的代码块
JFactory::getDBO()->setQuery("SELECT
#_facileforms_records.id,
#_facileforms_subrecords.afname,
#_facileforms_subrecords.alname,
#_facileforms_subrecords.awebsite,
#_facileforms_subrecords.aphone,
#_facileforms_subrecords.aemail,
#_facileforms_subrecords.abrokerage
FROM #_facileforms_records;
INNER JOIN #_facileforms_subrecords;
ON #_facileforms_records.id=#_facileforms_subrecords.record;
WHERE (#_facileforms_subrecords.name = acustomerid AND value = \"$userid\")
AND (#_facileforms_subrecords.name = \"formid\" AND value = 4);");
嗯,有些人发布了固定的代码,但没有人解释问题所在,所以我会的。 这里的问题是,您使用双引号来括起查询字符串,但也尝试在查询中使用双引号。如果您有以下字符串
$myString = "this is a string with "quotes" inside of it";
PHP会认为字符串以结尾,引号是一个T_常量_封装的_字符串一个用define函数定义的常量标识符,因此它会抛出一个语法错误
您可以使用多种方法消除该问题。在@Roopendra答案中,他用\转义引号,使其成为字符串的一部分,从而导致
在@Shankar Damodaran中,他用单引号替换了双引号,因此没有混淆
$myString = "this is a string with "quotes" inside of it";