PHP、mysql boolean 搜索

标签 php mysql full-text-search boolean

我是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 ('$ keywords' IN BOOLEAN MODE) 时,就没有收到任何值。 如果我将值更改为 AGAINST ('.$ keywords.' IN BOOLEAN MODE..)"); 然后我会收到此错误;Unknown column 'vleugel' in ' where 子句' 我尝试了第三种变体,AGAINST (.$ keywords IN BOOLEAN MODE)"),结果出现错误消息,您的 SQL 语法有错误;检查对应池塘的手册到您的 MySQL 服务器版本,以获取在第 2 行“+vleugel +staart.IN BOOLEAN MODE)”附近使用的正确语法 对于所有测试,我在表单中输入了 value vleugel 模型。

有什么想法可以解决这个问题。我不知道这是否重要,但我在这个项目中使用 Dreamweaver 和 mysql 版本 5.5.24。 提前致谢

最佳答案

尝试用 {$keywords} 替换它。

"SELECT omschrijving FROM `rapporten` WHERE MATCH (`rapnaam`, `omschrijving`) AGAINST (\"{$keywords}\" IN BOOLEAN MODE)"

关于PHP、mysql boolean 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16908807/

相关文章:

c# - 如何使用runco​​mmand在mongodb上搜索

php - Sphinx自定义排序(FIELD)

php - Codeigniter 在 Mac 上使用不同的 MYSQL

php - 从 2 个带有 2 个外键的表中选择

php - PHP-->MySQL 中 bool 错误时调用成员函数 bind_param()

mysql - MySQL 如何在 UTF-8 中工作 "case insensitive"和 "accent insensitive"

javascript - 文本区域验证在 ja​​vascript php 中不起作用

mysql - 将汇总行分解为 R 中的单独行

mysql varbinary 与 varchar

solr - 如何在asp.net中集成solr全文搜索引擎