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

CDbCriteria-parametre med regex-tegnklasser

PHP vil ikke erstatte pladsholdere inde i strenge, dvs. inden for anførselstegn. Som i:

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

Derfor er vi nødt til at bruge mysqls CONCAT() funktion til faktisk at generere strengen til regexp, i stedet for at levere strengen selv, som sådan:

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

ELLER bind hele regexet selv:

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



  1. PHP MySQL græske bogstaver, der viser som ???? mærker

  2. Lagring af datetime som UTC i PHP/MySQL

  3. PostgreSQL dump og gendan i anden tidszone

  4. PostgreSQL:udfyld NULL-værdier i tidsserieforespørgsel med tidligere værdi