我的代码不 运行 这个 'join'
My code do not run with this 'join'
我有一个空的 table,叫做 'distinct'。 Thiw table 有一些名称为 'wid'、'variables' 和 'timestamp' 的列...我有以下代码:
// Begin building the query.
$query = db_select('watchdog', 'wa');
$query->join('distinct', 'd', 'wa.wid = d.wid');
$query->fields('wa', array('variables', 'wid', 'timestamp', 'type', 'message',
'severity'))
->range(0, 20);
$result = $query->execute();
// Loop through each item and add to $row.
foreach ($result as $row) {
$delete_old_rows = db_delete('distinct')
->condition('variables', $variables, '=')
->condition('timestamp', $timestamp, '<')
->execute();
$select_same_variables = db_select('distinct', 'd')
->fields('d')
->condition('variables', $variables, '=')
->execute();
if ($select_same_variables->rowCount() == 0) {
$query = db_insert('distinct')
->fields(array('timestamp' => $timestamp, 'wid' => $wid,
'variables' => $variables,
))
->execute();
}
当我 运行 这段没有连接的代码一切都很完美,但它 运行 只适用于 20 个值。当我 运行 它有连接时,没有一次进入 'for' 循环...为什么我有这个问题?
Distinct、Timestamp 和 Type 听起来像是许多不同数据库中的保留字。最好不要使用保留字命名列(或 table),即使您的数据库允许也是如此。
至于循环只运行了20次,可能是由于某些意外数据(可能是时间戳的空值)直到第20次迭代才出现。
我有一个空的 table,叫做 'distinct'。 Thiw table 有一些名称为 'wid'、'variables' 和 'timestamp' 的列...我有以下代码:
// Begin building the query.
$query = db_select('watchdog', 'wa');
$query->join('distinct', 'd', 'wa.wid = d.wid');
$query->fields('wa', array('variables', 'wid', 'timestamp', 'type', 'message',
'severity'))
->range(0, 20);
$result = $query->execute();
// Loop through each item and add to $row.
foreach ($result as $row) {
$delete_old_rows = db_delete('distinct')
->condition('variables', $variables, '=')
->condition('timestamp', $timestamp, '<')
->execute();
$select_same_variables = db_select('distinct', 'd')
->fields('d')
->condition('variables', $variables, '=')
->execute();
if ($select_same_variables->rowCount() == 0) {
$query = db_insert('distinct')
->fields(array('timestamp' => $timestamp, 'wid' => $wid,
'variables' => $variables,
))
->execute();
}
当我 运行 这段没有连接的代码一切都很完美,但它 运行 只适用于 20 个值。当我 运行 它有连接时,没有一次进入 'for' 循环...为什么我有这个问题?
Distinct、Timestamp 和 Type 听起来像是许多不同数据库中的保留字。最好不要使用保留字命名列(或 table),即使您的数据库允许也是如此。
至于循环只运行了20次,可能是由于某些意外数据(可能是时间戳的空值)直到第20次迭代才出现。