0

REGEXPSQLインジェクションを防ぎ、同じクエリで同様の結果を取得するために使用したいと思います。私はこのようなSQLインジェクションを防ぐことを知っています

 $this->getAdapter()->fetchAlll("SELECT * FROM $this->_table WHERE email = ? ", array($email));

REGEXPここで、最初の3文字と最後の3文字に基づいて同様の結果を取得するために使用している別のクエリがあります。私のクエリは次のようになります

$this->_adapter->fetchAll("SELECT country_name FROM $this->_name WHERE country_name REGEXP '^$front' OR country_name REGEXP '$end$'");

使用^中に開始するREGEXPということは、最初から比較したいということであり$、最後に使用するということは、最後から比較したいということです。

では、上記のクエリの時点でSQLインジェクションを防ぐために、上記のクエリをどのように記述できるかを尋ねたいと思います。

4

1 に答える 1

2

次を試してください

$query = "SELECT country_name
              FROM $this->_name
          WHERE country_name REGEXP ? OR
                country_name REGEXP ?";
$this->_adapter->fetchAll($query, array('^'.$front, $end.'$'));
于 2012-12-18T19:29:19.857 に答える