【发布时间】:2020-01-28 19:00:14
【问题描述】:
我有一个查询,我想在其中将 MS SQL 语句的结果传递给一个变量。不知道该怎么做。
我的查询:
if($view->id() == 'program_search' &&
!empty($searched_miles_value) &&
!empty($searched_zip_value) &&
($searched_miles_value != 'any')) {
$connection = \Drupal\Core\Database\Database::getConnection();
$result = $connection->query("SELECT to_zip FROM zipmaster_xref WHERE from_zip = '".$searched_zip_value."' AND miles = '".$searched_miles_value."'")-> fetchAll();
$target_zips = $result ; //this line is not working
foreach($result as $zip) {
$target_zips[] = $zip->to_zip;
}
$query->addWhere('new_group', 'node__field_zip.field_zip_value', $target_zips, 'IN');
我想将 $result 数组传递给 $target_zips 并循环遍历它。谁能帮我解决这个问题?
谢谢!
【问题讨论】:
-
return $result->fetchAll在某处返回值,之后的代码没有执行。 -
是的...有什么办法可以解决这个问题吗?最初我没有那条线。我所拥有的只是在上一个查询行的末尾进行简单的获取。这也不起作用!
-
如果您阅读文档会更好:php.net/manual/en/pdostatement.fetchall.php
-
谢谢。 FetchAll 不会产生任何问题。我的问题是在那之后的线路。不确定如何将 $result 传递给 target_zips 字段。
-
你为什么要设置
$target_zips = $result ;,然后再循环$result设置$target_zips?你不会在循环之前将 $target_zips 设置为一个空数组吗?
标签: php drupal drupal-8 drupal-modules