Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过从Facileforms提取数据创建选择列表时出现语法错误_Php - Fatal编程技术网

Php 通过从Facileforms提取数据创建选择列表时出现语法错误

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

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 = 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";