我不明白“解析错误:语法错误,意外''(T_ENCAPSED_AND_WHITESPACE),

时间:2014-01-01 20:21:35

标签: php while-loop search-engine

我正在创建一个搜索引擎(请不要问为什么)。我在PHP上有点生疏,我需要一些帮助来确定我需要对我的代码做什么。它是用PHP编写的。

$find=$_GET['s'];
$f1 = "user";
$f2 = "title";


if ($find == "") 
{ 
echo "<p>You forgot to enter a search term"; 
exit; 
} 


mysql_connect("localhost", "root", "") or die(mysql_error()); 
mysql_select_db("searchenginedb") or die(mysql_error()); 


$find = strtoupper($find); 
$find = strip_tags($find); 
$find = trim ($find); 


$data = mysql_query("SELECT * FROM sitedata WHERE upper($f1) LIKE'%$find%' OR WHERE  upper($f2) LIKE'%$find%'); 
while($result = mysql_fetch_array($data)) 
{  
echo $result['title'];  
echo $result['url']; 
echo "<br>"; 
echo $result['description']; 
echo "<br>"; 
echo "<br>"; 
} 

echo "<b>Searched For:</b> " .$find;  

由php错误代码定义的错误应该是“While”语法。但是,请原谅我,如果这是一个明显的错误,我认为它没有任何问题。

请帮帮我, 安迪。

2 个答案:

答案 0 :(得分:1)

您在此末尾忘记了双引号:LIKE'%$find%'); - &gt; LIKE'%$find%'");

答案 1 :(得分:0)

这就是你现在所拥有的:

$data = mysql_query("SELECT * FROM sitedata WHERE upper($f1) LIKE'%$find%' OR WHERE  upper($f2) LIKE'%$find%');

这就是你需要的:

$data = mysql_query("SELECT * FROM sitedata WHERE upper($f1) LIKE'%$find%' OR upper($f2) LIKE'%$find%'");

我在最后添加了双引号,否则它会将您文件的其余部分视为SQL。我还删除了第二个WHERE,你的SQL中只能有1个WHERE。

如果使用带语法高亮的编辑器,如上所述,您将看到SQL之后的所有PHP都与字符串颜色相同。