Sum和其他列的PHP PDO语句失败

时间:2018-08-25 10:23:45

标签: php mysql pdo

我正在尝试使用PDO运行SQL查询

这有效

.octagonWrap {
  background: red;
  width: 200px;
  height: 200px;
  position: absolute;
  -webkit-clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
}

.octagon {
  position: relative;
  background: gray;
  width: 190px;
  height: 190px;
  top: 5px;
  left: 5px;
  -webkit-clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
}

但这不是

<div class="octagonWrap">
  <div class='octagon'></div>
</div>

唯一的区别是在查询中添加了a,b列名。

我可以将查询(两者)直接运行到mysql中,并按预期方式获得一条记录,但是PDO似乎不喜欢同一查询中的列名和总和?

我看不到原因或解决方案。 PDO的新手,所以以前从来都不是我的问题。

谢谢。

更新-好的,我仍然认为这应该可以正常工作,但是作为一种解决方法,我运行了2条sql语句,几乎完全相同。一个带有SELECT SUM(x),一个带有SELECT a,b,但没有和。效果很好,但是我真的应该能够在一个声明中做到这一点,除非我遇到了我尚不了解的PDO限制。

3 个答案:

答案 0 :(得分:0)

您可能需要GROUP BY c(或您可能希望对域聚合函数SUM()进行分组的任何列)才能获得所需的结果集...并可能将上述建议纳入帐户。

答案 1 :(得分:0)

以这种方式针对您的查询进行尝试,为我实现了您想要的目标:

  

$ result = $ dbo-> query(“ SELECT a,b,(SELECT sum(c)asFROM tbl),   作为scfus       来自tbl       哪里           YEAR(ondate)= YEAR('“。$ _ POST ['startdate']。”')           AND MONTH(ondate)= MONTH('“。$ _ POST ['startdate']。”')           AND DAY(ondate)= $ i“);

SUM仅返回一行,因此您将永远不会获得所有结果,而只会获得第一个匹配的WHERE标准(它首先找到找到的记录,然后仅计算需要的条件)。

它将起作用

哦,顺便说一句,为日期打上时间戳记,以日期sql格式创建日期发布的字符串,然后检查

WHERE date = $_POST['date']

答案 2 :(得分:0)

将起作用 SELECT a,b,(SELECT SUM(ID)* 30 FROM表)FROM表WHERE ID = SOME(SELECT ID FROM表WHERE users_ID = idYouWant);