我是PHP的新手,希望有人可以帮助我
我已经很远了,但是现在我被卡住了。
我已经逐步完成了学习过程,因此下面的代码中包含一些控制规则。
我的问题是运行MySQL查询,尤其是在MATCH AGAINST函数中。
如您在代码中所见,我在AGAINST的查询中添加了一个固定值。这很完美。
我通过在phpAdmin中键入查询生成查询,然后运行查询“创建PHP代码”后单击。
<?php
// not set?
if(!isset($_POST['omschrijving2'])) exit('nothing posted');
// get posted values
$keywords = $_POST['omschrijving2'];
$qualifier = $_POST['qualifier'];
//do the search and search using all the terms if 'all'
if ($qualifier == "all")
{
$words=explode(" ",$keywords);
//add + operator to each keyord
$keywords = '';
foreach($words as $word) {
$keywords .= "+".$word." ";
}
echo $keywords; // '+vleugel +model '
$keywords = rtrim($keywords); // remove last space
echo '<br>'.$keywords; // '+vleugel +model'
echo "is de keyword waarde";
}
else
{
echo "geen waarde in keywoord";
}
mysql_connect("localhost","xxx","xxx","xxx");
mysql_select_db('museum');
$query = mysql_query("SELECT omschrijving FROM `rapporten` WHERE MATCH (`rapnaam` , `omschrijving`)\n"
. "AGAINST (\"+vleugel +model\" IN BOOLEAN MODE) ");
if(!$query) {
echo mysql_error()."<br>$query<br>";
}
else
{
while($row = mysql_fetch_array($query)){
echo "<br />";
echo $row['omschrijving'];
echo "<br />";
}
}
?>
我得到的问题是,当我在查询中替换动态值“ AGAINST('$关键字'IN BOOLEAN MODE)的固定值”时,没有接收到任何值。
如果我将值更改为“ AGAINST('。$关键字。在BOOLEAN MODE ..)中”);然后我得到这个错误; “ where子句”中的未知列“ vleugel”
我尝试的第三个变体,“ AGAINST(。$关键字在BOOLEAN MODE中)”,导致出现错误消息,您的SQL语法有错误。请查看与您的MySQL服务器版本相对应的手册,以获取在'+ vleugel + staart附近使用的正确语法。在BOOLEAN模式下)“在第2行
对于所有测试,我以表格形式输入了价值vleugel模型。
任何想法如何解决这一问题。我不知道这是否重要,但是我为此项目使用了Dreamweaver和mysql 5.5.24版本。
提前致谢
最佳答案
尝试将其替换为{$ keywords}。
"SELECT omschrijving FROM `rapporten` WHERE MATCH (`rapnaam`, `omschrijving`) AGAINST (\"{$keywords}\" IN BOOLEAN MODE)"