簡體   English   中英

如何在Yii2中調用SQL LIKE函數?

[英]How to call the SQL LIKE function in Yii2?

在我調用此SQL語句時接收NULL作為值(該記錄存在於MySQL DB中)。 如何在Yii2中使用LIKE功能? 謝謝。

$command = $connection->createCommand("SELECT user_id
                         FROM User
                            WHERE name LIKE '%:_username%'");

$command->bindParam(':_username',$this->username);
$this->id_user = $command->queryScalar();
$command->execute();

在Yii2中,您也可以使用activeQuery Notation

  $query = new Query;
  $query->select('userid')
      ->from('user')
      ->where(['like', 'user', $this->username );

  $command = $query->createCommand();

  $this->id_user = $command->queryScalar(); 

我認為這里的問題是binding

嘗試,改為使用它。

$command->bindParam('_username',$this->username);

還不太確定變量的可接受語法是什么,所以如果它仍然不起作用,請嘗試刪除_並在綁定上使用username ...並在查詢中使用username :username

我不確定,但嘗試獲得單引號前的第一個%和最后一個單引號后的最后一個%。

$ command = $ connection-> createCommand(“SELECT user_id FROM User WHERE name LIKE%':_ username'%”);

需要對整個數據進行綁定,而不僅僅是其中的一部分。

$command = $connection->createCommand("SELECT user_id
                     FROM User
                        WHERE name LIKE :username");

$user = '%' . $this->username . '%';

$command->bindParam(':username',$user);
$this->id_user = $command->queryScalar();
$command->execute();

只需在bindValue中包含"%value%"即可

 $command = $connection->createCommand("SELECT user_id
                             FROM User
                                WHERE name LIKE ':_username'");

    $command->bindParam(':_username',"%".$this->username."%");
    $this->id_user = $command->queryScalar();
    $command->execute();

使用%%綁定值的正確方法如下

 $command->bindParam(':_username',"%".$this->username."%");

就像我們使用的PDO一樣

我正在使用bindValue。 你可以像這樣使用..我的模型中有一個查詢,並調用我的控制器上的函數。

內部模型:

$query = "SELECT u.id as idUser
FROM vagas_x_candidato vxc
INNER JOIN usuario u ON(u.id = vxc.id_candidato)
WHERE u.nome LIKE :nameUser";

$connection = \Yii::$app->db;
$model = $connection->createCommand($query);
$model->bindValue(":nameUser", '%' . $filter->nameU . '%');
return $model->queryAll();

內部控制器:

$vxc = new VagasXCandidatoSearch();
$vxc = $vxc->candidatosPesquisaAvancada(); //calls my method on model.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM