sql >> Database teknologi >  >> RDS >> Mysql

hvordan man forhindrer sql-injektion fra denne forespørgsel?

Når pladsholderen er citeret, er den ikke en pladsholder, det er den bogstavelige værdi. Prøv det på denne måde:

$a = Model::model()->findAllBySql(
                      'SELECT * FROM table WHERE name like :name',
                      array(":name"=> '%' . $_GET['name'] . '%')
                      );

Driveren tilføjer i øjeblikket automatisk kolonerne, men det er måske ikke i fremtiden, det er bedst at lade navnet matche pladsholderen.




  1. Hvordan får man SQL_CALC_FOUND_ROWS-værdien ved hjælp af forberedte sætninger?

  2. hvorfor vi har brug for venstre og højre sammenføjning

  3. Sådan importeres CSV-fil til MySQL-tabel

  4. Sådan indsætter du en streng, der indeholder et &