0

私はPHPの初心者です。誰かが私を助けてくれることを願っています

私はすでにかなり離れていますが、今は立ち往生しています。私が段階的に行った学習プロセスなので、以下のコードにはいくつかの制御規則があります。私が抱えている問題は、特に MATCH AGAINST 関数で MySQL クエリを実行することです。コードでわかるように、クエリの 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..)");Then に変更すると、このエラーが発生します。Unknown column 'vleugel'これを試した 3 番目のバリエーションAGAINST (.$ Keywords IN BOOLEAN MODE)")では、エラー メッセージが表示されましたYou have an error in your SQL syntax; check the manual That corresponds ponds to your MySQL server version for the right syntax to use near '+vleugel +staart. IN BOOLEAN MODE) 'at line 2 。すべてのテストで、値 vleugel モデルをフォームに入力しました。

これを修正する方法についてのアイデア。これが重要かどうかはわかりませんが、このプロジェクトでは Dreamweaver と mysql バージョン 5.5.24 を使用しています。前もって感謝します

4

1 に答える 1

0

{$keywords} に置き換えてみてください。

"SELECT omschrijving FROM `rapporten` WHERE MATCH (`rapnaam`, `omschrijving`) AGAINST (\"{$keywords}\" IN BOOLEAN MODE)"
于 2013-06-04T03:42:24.287 に答える