我想要的是检查变量是否=变量AND时间戳>时间戳,如果为true,则删除旧值并创建新值。我认为上述代码只是创建了所有值,因为它不会删除旧值。创建新旧版时如何删除旧版?
$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模块的一部分):https://api.drupal.org/api/devel/devel.module/function/dpq/7关于php - db_select向我发送所有值,而不是我想要的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29033072/