Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Parameter CDbCriteria dengan kelas karakter regex

PHP tidak akan menggantikan placeholder di dalam string, yaitu dalam tanda kutip. Seperti dalam:

$criteria->addCondition('col = :app'); // param can be replaced
$criteria->addCondition('col = ":app"'); // param can't be replaced

Oleh karena itu kita perlu menggunakan CONCAT() berfungsi untuk benar-benar menghasilkan string untuk regexp, alih-alih menyediakan string itu sendiri, seperti:

$criteria->addCondition('col regexp CONCAT("[[:<:]]", :app, "[[:>:]]")');

ATAU, ikat seluruh regex itu sendiri:

$criteria->addCondition('col regexp :regexp');
$criteria->params = array(':regexp'=>'[[:<:]]'.$app.'[[:>:]]');



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menjadwalkan kueri MySQL?

  2. Bagaimana Fungsi REGEX_REPLACE() Bekerja di MySQL

  3. Pernyataan yang disiapkan MySQL PHP PDO - masalah kinerja vs keamanan

  4. Haruskah saya menggunakan backticks atau tidak saat keluar dari kata kunci di MySQL?

  5. php pdo hanya mendapatkan satu nilai dari mysql; nilai yang sama dengan variabel