0

我试图从另一个表填充一个表,只有当一天是周末,但是当我尝试将我的结果提取到一个 php 数组中时,它说我正在获取一个非对象,并且这个错误开始于我添加了我的 where 子句,它试图只选择周末。如果有人可以看一下并纠正我,我的代码是: 已编辑

     $con->query("INSERT INTO eventos_dias SELECT DATE(inicio_periodo),'1','0','0','0' FROM eleva WHERE HOUR(inicio_periodo) BETWEEN 0 AND 6 AND WEEKDAY('inicio_periodo') BETWEEN 5 AND 6") 

$query=$con->query("SELECT Data, Sum(0h_6h) as sum0_6,Sum(6h_12h),Sum(12h_18h),Sum(18h_24h) FROM evnetos_dias
GROUP BY Data
ORDER BY Data ASC")

while($row->$query->fetch(PDO::FETCH_ASSOC)) //this line contains the error
{
$dados0_6_fds[] = $row['sum0_6'];
}

想法也很受欢迎!

4

3 回答 3

0

你确定吗

while($row->$query->fetch(PDO::FETCH_ASSOC))

是正确的?不应该

while($row = $query->fetch(PDO::FETCH_ASSOC))

并且为了澄清(因为除了我自己的帖子我不能评论任何东西)插入语句工作正常,因为 where 子句用于选择。

于 2013-10-21T22:03:42.640 回答
0

WHERE在 INSERT 查询中不能有一个。在 PHP 级别进行日期过滤,如果是周末,根本不运行查询:

if ($is_not_weekend);
  $con->query('INSERT ...');
}
于 2013-10-21T21:24:02.387 回答
0
INSERT INTO eventos_dias(put the columns in here) 
SELECT DATE(inicio_periodo),'1','0','0','0' 
FROM eleva 
WHERE HOUR(inicio_periodo) BETWEEN 0 AND 6 
AND WEEKDAY('inicio_periodo') BETWEEN 5 AND 6

使用合适的工具开发查询始终是一个好主意,直​​到(并且可能在之后)您掌握了 sql 的窍门。

于 2013-10-21T21:26:54.857 回答