検索

ホームページ  >  に質問  >  本文

PHPを使用した複数列クエリに関するリサーチクエスチョン

<p>質問があります。 PHP で POST メソッドを使用して、指定された部分文字列を含むすべてのテキストをクエリする必要があります。たとえば、「a」または「1」のような数字 (整数ではない文字) を入力した場合、その文字または部分文字列を含むものをすべて検索し、可能であればテーブル内のすべての列を確認する必要がありますか?このようなことを試してみましたが、コードが少し面倒です。 </p> <pre class="brush:php;toolbar:false;"><?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $usersearch = $_POST["usersearch"]; 試す { require_once "includes/dbh.inc.php"; $query = "SELECT * FROM tlattine WHERE ティポロジア LIKE :usersearch OR 名前 LIKE :usersearch OR キャラクタリスティック LIKE :usersearch OR tabstyle LIKE :usersearch OR tabcolor LIKE :usersearch OR トップスタイルのような :usersearch または トップカラーのような :usersearch または プロビニエンツァ LIKE :usersearch OR 製品の LIKE :usersearch OR sku LIKE :usersearch ヒント、プロビニエンツァ、年、ディメンションで注文します;"; $stmt = $pdo->prepare($query); $stmt->bindParam(":usersearch", $usersearch); $stmt->execute(); $results = $stmt->fetchAll(PDO::FETCH_ASSOC); $pdo = null; $stmt = null; } キャッチ (PDOException $e) { die("クエリが失敗しました: " . $e->getMessage()); } } それ以外{ header("場所: ../index.php"); } ?></pre> <p>すでに '%:usersearch%' を使用したり、任意の形式で % を組み合わせたりしようとしましたが、何かが足りないようです。確かにそうですが、見つかりません :(</p>
P粉242126786P粉242126786490日前456

全員に返信(1)返信します

  • P粉793532469

    P粉7935324692023-07-27 09:13:59

    クエリを見て、パラメータ usersearch を複数回使用していることに気付きました。

    PHP ドキュメントで言及されている:

    偽装モードを有効にすることを避け、代わりに名前付きプレースホルダーを位置プレースホルダー (':usersearch' の代わりに '?' を使用) に変更して、## を使用することを好みます。


    # リーリー

    最後にもう 1 つ、列に $usersearch 変数が含まれるようにクエリを実行する場合は、おそらく文字列の先頭と末尾に % を追加する必要があります。

    リーリー

    返事
    0
  • キャンセル返事