Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Drupal-以编程方式更改某些迁移术语的url别名_Php_Mysql_Drupal_Foreach_Drupal 7 - Fatal编程技术网

Php Drupal-以编程方式更改某些迁移术语的url别名

Php Drupal-以编程方式更改某些迁移术语的url别名,php,mysql,drupal,foreach,drupal-7,Php,Mysql,Drupal,Foreach,Drupal 7,我正试图在Drupal中执行SQL查询,以便在几个站点上编辑一些分类术语的url_别名 // Query to get aliases which contain event-category in alias. $aliases = db_select('url_alias', 'ua') ->fields('ua', array('alias')) ->condition('alias', '%event-category/%', 'LIKE')

我正试图在Drupal中执行SQL查询,以便在几个站点上编辑一些分类术语的url_别名

  // Query to get aliases which contain event-category in alias.
  $aliases = db_select('url_alias', 'ua')
    ->fields('ua', array('alias'))
    ->condition('alias', '%event-category/%', 'LIKE')
    ->execute()
    ->fetchCol();

  foreach ($aliases as &$ua) {
    // Strip out event-category and replace with category
    $new_alias = str_replace("event-category/", "category/", $ua);

    // Update url_alias table
    $update_db = db_update('url_alias')
      ->fields(array('alias' => $new_alias))
      ->condition('alias', '%event-category/%', 'LIKE')
      ->execute();

  }
每次运行此代码时,正确的术语别名都会更改,但它们都会更改为第一个术语别名。例如:

  • 事件类别/abc123=>category/abc123
  • 事件类别/def456=>category/abc123
  • 事件类别/ghi789=>category/abc123

据我所知,当dpm'ing$new_alias变量时,str_replace起作用。

将更新查询条件更改为


->条件('alias'、'%'.$ua'%,'LIKE')

。我昨天一整天都在关注这个问题,看不到问题所在。