Php db_选择发送所有值,而不是我想要的

Php db_选择发送所有值,而不是我想要的,php,mysql,database,drupal,drupal-7,Php,Mysql,Database,Drupal,Drupal 7,我想检查的是variables=variables和timestamp>timestamp,如果这是真的,请删除旧值并创建新值。我认为上面的代码只创建所有值,因为它不会删除旧值。如何在创建新文件时删除旧文件 $query = db_select('watchdog', 'th') ->extend('PagerDefault') ->orderBy('wid') ->fields('th', array('variables', 'type', 'sev

我想检查的是variables=variables和timestamp>timestamp,如果这是真的,请删除旧值并创建新值。我认为上面的代码只创建所有值,因为它不会删除旧值。如何在创建新文件时删除旧文件

$query = db_select('watchdog', 'th')
    ->extend('PagerDefault')
    ->orderBy('wid')
    ->fields('th', array('variables', 'type', 'severity',
         'message', 'wid', 'timestamp'))
    ->limit(2000);

  // Fetch the result set.
  $result = $query -> execute();

  // Loop through each item and add to $row.
  foreach ($result as $row) {
    blabla($row);
  }


  function blabla($row)
    $timestamp = $row -> timestamp;
    $r = db_select('distinct', 'b')
      ->fields('b')
      ->condition('variables', $variables, '=')
      ->condition('timestamp', $timestamp, '>')
      ->execute();
    if($r -> rowCount() == 0) {
    $query = db_delete('error_log_jira')
      ->fields('b', array('timestamp', 'wid', 'variables',))
      ->execute();
    $query = db_insert('distinct')
      ->fields(array(
        'timestamp' => $timestamp,
        'wid' => $wid,
        'variables' => $variables,
     ))
     ->execute();
    }
这个代码工作得很完美

$r = db_select('blabla', 'b')
      ->fields('b')
      ->condition('variables', $variables, '=')
      ->execute();
您在代码示例中使用的是
(大于)

$r = db_select('blabla', 'b')
  ->fields('b')
  ->condition('variables', $variables, '=')
  ->condition('timestamp', $timestamp, '>')
  ->execute();

如果你想调试和查看执行的查询,你可以使用
dpq()
函数(devel模块的一部分):

php中没有db_select()这样的函数。你想到了吗:,在这种情况下,你在stackoverflow的错误部分。我更新了我的代码,你现在可以帮助我了!!!如果我使用它会显示表中的所有值,我无法理解它在做什么:'(:'(可能你的
$timestamp
值有问题,是什么?你如何获得时间戳?我更新了代码,我认为我在db_delete函数中有错误