2017-06-04 145 views
0

我试图从传感器DHT22连接到覆盆子pi读取温度,并通过PHP脚本将其写入到mysql数据库。从shell exec传递变量到mysql_query

我得到的温度是这样的:

$temp = shell_exec('./temp.py'); 

脚本返回类似45或45.7等...一样湿度数。当我在同一个脚本呼应它,它的工作原理。 而且事,我不能穿过这里:

$sql='INSERT INTO values (id, date, time, timestamp, temp, hum) VALUES ("", NOW(), NOW(), NOW(), "$temp", "$hum")'; 
$result = MySQL_Query($sql); 

但在DB总是写$临时$哼哼,而不是实际值。我认为我已经尝试了所有可能的引号组合等等...... 什么可能是错误的?在此先感谢您的答案。

+1

它的一个 “串东西” 变' “$ TEMP”, “$呜呜”'到' “ '$温度。'”,“”。$嗡嗡声被发现。 ““' –

回答

0
$sql="INSERT INTO values (id, date, time, timestamp, temp, hum) VALUES (\"\", NOW(), NOW(), NOW(), \"$temp\", \"$hum\")"; 
$result = MySQL_Query($sql); 

请注意双引号

有双人和单引号之间的区别:

  • 双引号由PHP引擎解析。您可以将变量放入其中,并可用于显示转义的特殊字符。
  • 另一方面,单引号会按原样显示。它们不会被PHP解析,也不需要转义,除了'告诉解释器引用是字符串的结尾还是其一部分。

您正在使用单引号,这就是为什么您的字符串不被解析为变量。

更多信息可在PHP Manual