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

SQLLIKEクエリの失敗-プリペアドステートメントの致命的なエラー

    LIKEの場合 句、これを使用します:

    SELECT ARTICLE_NO FROM AUCTIONS1 WHERE upper(ARTICLE_NAME) LIKE CONCAT('%', ?, '%')
    

    テーブル名に関しては、パラメータとしてテーブル名を使用することは非常に悪い習慣です。

    何らかの理由でそれでも実行する必要がある場合は、クエリを準備する前に、クエリテキストに埋め込む必要があります。

    $countQuery = "SELECT ARTICLE_NO FROM $table_name WHERE upper(ARTICLE_NAME) LIKE CONCAT('%', ? ,'%')";
    if ($numRecords = $con->prepare($countQuery)) {
        $numRecords->bind_param("s", $brand);
        $numRecords->execute();
        $data = $con->query($countQuery) or die(print_r($con->error));
        $rowcount = mysql_num_rows($data);
        $rows = getRowsByArticleSearch($query, $table, $max);
        $last = ceil($rowcount/$page_rows);
    }
    


    1. パラメータ値を使用してOracleストアドプロシージャの呼び出しをログに記録/トレースするにはどうすればよいですか?

    2. レベル15,000にこぼれるソート

    3. AndroidとOracleデータベースを接続するための最良の方法は何ですか?

    4. SQLServerでの1対0または1の関係の実装