Drupal 静态查询中的数组



>我有查询,我想在其中将MS SQL语句的结果传递给变量。不知道该怎么做。

我的查询:

if($view->id() == 'program_search'  && 
!empty($searched_miles_value) &&
!empty($searched_zip_value) &&
($searched_miles_value != 'any')) {
$connection = DrupalCoreDatabaseDatabase::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 中并循环访问它。任何人都可以帮助我解决这个问题吗?

谢谢!

在获取数据之前,您必须执行查询,例如:

$result = $connection->query("SELECT to_zip FROM zipmaster_xref WHERE from_zip = '".$searched_zip_value."' AND miles = '".$searched_miles_value."'")->execute()->fetchAll();

但这种用法根本不正确。将变量传递给查询直接导致SQL注入,请避免使用占位符,请先阅读文档。 占位符的示例:

$query = $database->query("SELECT id, example FROM {mytable} WHERE created > :created", [
':created' => REQUEST_TIME - 3600,
]);

Drupal 8 静态查询文档可以在以下位置找到: https://www.drupal.org/docs/8/api/database-api/static-queries

最新更新