sql >> データベース >  >> RDS >> Mysql

SQLSTATE [HY093]:パラメーター番号が無効です

    PDO::Prepareによると

    したがって、エミュレーションモードをオンにします

    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, TRUE);
    

    または-

    に変更します
    $sql = "SELECT * FROM `character` WHERE `name` LIKE :search1  OR `play` LIKE :search2";
    $query = $db->prepare($sql); 
    $query->execute(array(':search1' => strip_tags($_POST['search']),':search2' => strip_tags($_POST['search'])));
    

    また、LIKEを使用しているため クエリでは、ワイルドカード%を追加する必要があります あなたの価値観に

    $query->execute(array(':search1' => "%".strip_tags($_POST['search'])."%",':search2' => "%".strip_tags($_POST['search'])."%"));
    



    1. Laravel8.xJsonが配列で検索する場所

    2. 最後の3時間かかり、5分ごとにグループ化します

    3. bind_paramなしでPDOプリペアドステートメントによるSQLインジェクションを完全に防ぐことはできますか?

    4. 値が異なる場合にのみ選択