将变量从shell exec传递给mysql_query

时间:2017-06-04 18:50:49

标签: php mysql shell

我试图从连接到raspberry pi的传感器DHT22读取温度,并通过PHP脚本将其写入mysql DB。

我得到这样的温度:

$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中总是写着 $ temp $ hum ,而不是实际值。我想我已经尝试过所有可能的引号组合等等...... 什么可能是错的?提前感谢您的答案。

1 个答案:

答案 0 :(得分: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

中找到更多信息