1

Field1、Field2、または Field3 にある可能性のある Value1 を検索する方法を見つけようとしています。明らかに機能していないため、構文が間違っていることはわかっていますが、ここに私のクラックがありました。

$query = "SELECT *
   FROM table1
  WHERE city = '$city'
    AND state = '$state'
    AND location = '$location'
    AND (field1 = '$field1U' OR field1 = '$field2U' OR field1 = '$field3U')
  ORDER BY date_created LIMIT 5";
$data = mysqli_query($dbc, $query);

where field1 in (1,2,3) を使用できるのではないかと思ったのですが、うまくいきませんでした。どんな助けでも大歓迎です。

4

2 に答える 2

0

すべてのレコードを検索する場合:

field1 = someValue

またfield2 = someValue

またfield3 = someValue

次に、これを使用できます:

  $query = "SELECT * FROM table1 WHERE city = '$city' AND state = '$state' AND    location = '$location' AND (field1 = '$Value1' OR field2 = '$Value1' OR field3 = '$Value1') ORDER BY date_created LIMIT 5";
    $data = mysqli_query($dbc, $query);
于 2012-04-30T21:01:28.317 に答える
0

交換

AND (field1 = '$field1U' OR field1 = '$field2U' OR field1 = '$field3U')

AND (field1 = '$search' OR field2 = '$search' OR field3 = '$search')

(field1、field2、または field3 を検索していることに注意してください) しかし、どうか、どうか、どうか (!!) $search 文字列をエスケープしてください! 例えば:

$search = mysqli_real_escape_string($link, $search)

を使用して $link が設定された場所

$link = mysqli_connect(...)

http://php.net/manual/de/mysqli.real-escape-string.phpを参照してください。 これは SQL インジェクションを防ぐために使用されます (https://en.wikipedia.org/wiki/SQL_injection)

ああ、変数からテキストを分割してみてください。個人的には、その方が安全で優れたコーディング スタイルだと思います。あなたのユースケースのために:

AND (field1 = '" . $search . "' OR field2 = '" . $search . "' OR field3 = '" . $search . "')
于 2012-05-01T12:20:25.337 に答える