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

bindValue()を使用したPDOクエリメソッドが機能していないようです

    あなたのコード:

    $ruleValue = "value1";
    $input = "value2";
    $inputValue = "value3";
    
    $this->_db->query('SELECT * FROM ? WHERE ? = ?', array($ruleValue, $input, $inputValue)
    

    4行
    安全ではない
    状態を保存->自分で掘った大きな落とし穴
    機能しない

    通常のPDO

    $stmt = $this->db->prepare('SELECT * FROM value1 WHERE value2 = ?')
    $stmt->execute([$value3]);
    $results = $stmt->fetchAll();
    

    3行
    安全
    ステートレスワークス

    結論:この悪意のある関数を削除し、生のPDOを使用する




    1. DockerがPostgresqlデータディレクトリを認識しない

    2. OracleDatabaseのネイティブ動的SQLの概要

    3. libpqxxからpqxx::stateless_cursorクラスを使用する方法は?

    4. mysqlREGEXPが一致しません