php - MySQL Query 在 Workbench 中完美运行,我的 php 仪表板没有返回任何值?
问题描述
给你一个奇怪的...
我有一个仪表板,它显示来自 BMS 系统的数据,它是用 php、html 和 css 编写的,带有一些 java 的飞溅。我有一个 MySQL 查询,我可以在 MySQL 工作台中运行它并返回预期的结果。但是,当我从我的网页运行相同的 MySQLi 查询时,没有返回值?该表称为:- currentValues,其中包含 BMS 值的列称为:- currentValue,再次不受我的控制 [由 BMS 供应商设计] referencePath 是包含 BMS 端点的列。数据库被选为我的 $conn 字符串...
这是我的 MySQL Workbench 查询:
SELECT SUBSTRING(currentValue, 1, 3) FROM currentValues WHERE referencePath LIKE '%CO2_Level'
这是我的网页查询:
$sql = "SELECT SUBSTRING(currentValue, 1, 3) FROM currentValues WHERE referencePath LIKE '%CO2_Level'";
$result = $conn->query($sql);
$row = mysql_fetch_object($result);
echo "<h1>" . $row . " PPM</h1>";
我使用 SUBSTRING 的原因是因为该值有 4 个小数位,并且该列是一个 VARCHAR [我无法更改],我只想要整数 [嗯,从技术上讲,它是一个字符串]。
我也尝试过 SUBSTRING -> LEFT(currentValue, 3) 的替代方法,但它的行为方式相同吗?任何建议都会受到极大的欢迎!!!
编辑...
但是,如果我使用没有 SUBSTRING() 的查询
$sql = "SELECT * FROM currentValues WHERE referencePath LIKE '%CO2_Level'";
$result = $conn->query($sql);
$row = mysql_fetch_object($result);
echo "<h1>" . $row["currentValue"] . " PPM</h1>";
一切都按预期工作,除了我的仪表板中有一个愚蠢的值,比如 627.1498 PPM
解决方法
此问题已作为不相关问题的重复项关闭,因此我无法将其发布为答案。虽然它确实是一种解决方法而不是上述问题的答案,但可能对其他人有帮助,我只是使用 php 运算符 ROUND 对 MySql 查询中返回的值进行四舍五入。
echo "<h1>" . round($row["currentValue"]) . "PPM</h1>";
解决方案
您SUBSTRING(currentValue, 1, 3)
在选择中使用,所以它会给SUBSTRING(currentValue, 1, 3)
您结果。
您可以通过 $row->SUBSTRING(currentValue, 1, 3) 来使用它。
但是,您应该为它使用别名。
尝试 -
$sql = "SELECT SUBSTRING(currentValue, 1, 3) AS curr_value FROM currentValues WHERE referencePath LIKE '%CO2_Level'";
$result = $conn->query($sql);
$row = mysql_fetch_object($result);
echo "<h1>" . $row->curr_value . " PPM</h1>";
推荐阅读
- sql - 如何在 Oracle Database 12.1 中将单行转换为列以转换为 JSON?
- android - 如何为我的自定义视图绘制元素添加涟漪效果?
- database - DynamoDB - 设计一对多关系
- r - 汇总牺牲最小分辨率的数据(根据滞后值的总和创建不同大小的组)
- stored-procedures - 返回 Teradata 存储过程中的活动日志
- java - Optional.map 中的 Integer::toString
- java - 更有效地从控制台读取 int 值
- python - 如何使用双向RNN和pytorch填空?
- .net - ResourceLoader 工作不可靠,在语言之间随机切换
- python - 使用python实现参数L系统