YII 查询生成器不会显示结果
YII query Builder wont show results
我在使用 yii 查询生成器的两种不同语法时遇到问题
使用它,效果很好(但我不能在 SQL 中使用变量)
$connection = Yii::app()->db;
$sql='SELECT id_activo, nom_activo, valor_activo, cod_amenaza, tipo_activo, deg_amenaza,
frec_amaneza FROM activo, amenazas WHERE amenazas.activos_amenaza ILIKE "%"|| activo.tipo_activo ||"%" AND id_activo=1';
$query = str_replace('"',"'",$sql);
$command = $connection->createCommand("$query");
$rows = $command->queryAll();
使用这个不会显示任何东西
$i=1;
$rows = Yii::app()->db->createCommand()
->select('id_activo, nom_activo, valor_activo, cod_amenaza, tipo_activo, deg_amenaza, frec_amaneza')
->from('activo, amenazas')
->where('amenazas.activos_amenaza LIKE :substr', array(':substr' => '%activo.tipo_activo%'))
->andWhere('id_activo=:id', array(':id'=>$i))
->queryAll();
如果我用 LIKE 删除 where 条件就可以正常工作
问题是“%activo.tipo_activo%”未被视为来自数据库的数据,而是被视为纯字符串。
您可以像这样重写连接条件:
$rows = Yii::app()->db->createCommand()
->select('id_activo, nom_activo, valor_activo, cod_amenaza, tipo_activo, deg_amenaza, frec_amaneza')
->从('activo')
->join('amenazas', "amenazas.activos_amenaza LIKE '%'||activo.tipo_activo||'%' ")<br>
->where('id_activo=:id', array(':id'=>$i))
->queryAll();
我在使用 yii 查询生成器的两种不同语法时遇到问题 使用它,效果很好(但我不能在 SQL 中使用变量)
$connection = Yii::app()->db;
$sql='SELECT id_activo, nom_activo, valor_activo, cod_amenaza, tipo_activo, deg_amenaza,
frec_amaneza FROM activo, amenazas WHERE amenazas.activos_amenaza ILIKE "%"|| activo.tipo_activo ||"%" AND id_activo=1';
$query = str_replace('"',"'",$sql);
$command = $connection->createCommand("$query");
$rows = $command->queryAll();
使用这个不会显示任何东西
$i=1;
$rows = Yii::app()->db->createCommand()
->select('id_activo, nom_activo, valor_activo, cod_amenaza, tipo_activo, deg_amenaza, frec_amaneza')
->from('activo, amenazas')
->where('amenazas.activos_amenaza LIKE :substr', array(':substr' => '%activo.tipo_activo%'))
->andWhere('id_activo=:id', array(':id'=>$i))
->queryAll();
如果我用 LIKE 删除 where 条件就可以正常工作
问题是“%activo.tipo_activo%”未被视为来自数据库的数据,而是被视为纯字符串。
您可以像这样重写连接条件:
$rows = Yii::app()->db->createCommand()
->select('id_activo, nom_activo, valor_activo, cod_amenaza, tipo_activo, deg_amenaza, frec_amaneza')
->从('activo')
->join('amenazas', "amenazas.activos_amenaza LIKE '%'||activo.tipo_activo||'%' ")<br>
->where('id_activo=:id', array(':id'=>$i))
->queryAll();