簡體   English   中英

Zend Db 在哪里

[英]Zend Db Where in

我在 MSSQL 服務器上有下表:

Superheroes: id,name,real_name,power

作為輸入,我有以下數組:

$heroes=["Superman","Batman","Wonder Woman"]

我想使用 Zend Framework 2.3.2 獲取他們的真實姓名。 因此在我的模型上我有這個功能:

public function getHeroesRealNames(array $superHeroesNames)
{
  /**
  * @var Zend\Db\Adapter\AdapterInterface
  */
  $db=$this->db;
  $sql=new Sql($db);
  $qb=new Select('dbo.Superheroes');

  $qb->columns(['real_name'])->where('name IN (?)',$superHeroesNames);

  $query_string=$sql->getSqlStringForSqlObject($bq)
  var_dump($query_string);//Debug Output
}

但是用於調試目的的var_dump返回:

SELECT [dbo.Superheroes].[real_name] AS [real_name] FROM [dbo.Superheroes] WHERE name IN ('')"

而不是完整的查詢。 我該如何解決? 請注意,我var_dump生產中使用var_dump

我認為您需要使用 In Predicate 作為方法需要這樣做的地方,但如果給定正確的數組或字符串,該方法還將為您創建正確的謂詞。

你可以在這里找到文檔.. https://framework.zend.com/apidoc/2.1/classes/Zend.Db.Sql.Predicate.In.html

您不必直接使用該類,您可以...

基本示例:

$select->from('Superheroes')->where(array(
    'name' =>$superHeroesNames,
));

你也可以在文檔頁面上找到這樣的例子https://framework.zend.com/manual/2.2/en/modules/zend.db.sql.html#where-have

請注意 where 方法的第二個參數是組合類型,即 AND 或 OR

暫無
暫無

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

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