Php 将变量从shell exec传递到mysql\u查询

Php 将变量从shell exec传递到mysql\u查询,php,mysql,shell,Php,Mysql,Shell,我试图从连接到raspberry pi的传感器DHT22读取温度,并通过PHP脚本将其写入mysql数据库 我得到的温度是这样的: $temp = shell_exec('./temp.py'); 脚本返回45或45.7等数字。。。和湿度一样。。当我在同一个脚本中回显它时,它就工作了。 我无法通过的东西就在这里: $sql='INSERT INTO values (id, date, time, timestamp, temp, hum) VALUES ("", NOW(), NOW(), N

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

我得到的温度是这样的:

$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,而不是实际值。我想我已经尝试了所有可能的引号组合,等等。。。 可能有什么问题?提前感谢您的回答

$sql="INSERT INTO values (id, date, time, timestamp, temp, hum) VALUES (\"\", NOW(), NOW(), NOW(), \"$temp\", \"$hum\")";
$result = MySQL_Query($sql);
请注意双引号

双引号和单引号之间存在差异:

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

更多信息可在

its a“string thing”中找到,将“$temp”、“$hum”更改为“
”.$temp.”、“.$hum.”