編集: 入力文字列のどの部分が会社名であるかを特定できないため、文字列に対してテーブル内の company_name の既存の値を確認する必要があります。たとえば、PHP では次のようになります。
$input = 'Somebody has sent item to "stack-exchange"';
$result = mysql_query('SELECT company_name FROM table');
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
if strpos($input, $row['company_name']) === False {
print "Company name is not in this row!" /* Substitute whatever action you want here */
} else {
print "Company name is in this row!" /* Substitute whatever action you want here */
}
}
ユーザー入力の処理
SQL クエリの一部として入力を含める前に、入力がサニタイズされていることを確認してください。そうしないと、コードがハッキングに対して脆弱になります。
残念ながら、受け取った文字列の一部はユーザーが入力したものであるため、データベースにあるものと一致するかどうかはわかりません. たとえば、、 、 など"stack-exchange"
と合理的に表すことができます。そのため、データベースに会社名を保存する方法と一致するように入力を標準化する必要があります。たとえば、すべての文字を小文字にし、すべてのスペースまたは句読点をハイフンに置き換えることができます。これは、スペルが正しくない、またはスペルが異なるなどのエッジ ケースを除外するものではありませんが、それはこの質問の範囲を超えています。"Stack Exchange"
stack exchange
StackExchange
受け取ったサードパーティの文字列に二重引用符で囲まれた会社名が確実に含まれている場合 (および二重引用符がそれらの文字列内の他のものを示すために使用されていない場合)、PHP を使用して会社名を取得できます。次に、SQLWHERE
句を使用して関連する行を取得できます。
$input = 'Somebody has sent item to "stack-exchange"';
$parts = explode('"', $input);
$company_name = $parts[1];
$sql_query = 'SELECT * FROM table WHERE company_name="' . $company_name . '"'