我想尝试运行以下PHP代码:
$con = mysql_connect("localhost", "root", "") or die('connection not made');
$db = mysql_select_db('name', $con) or die('db not selected');
$query1 = "SELECT * FROM nodesensors WHERE NodeID=2";
$result1 = mysql_query($query1, $con);
$sensorids = mysql_fetch_array($result1);
$query2 = "SELECT SensorID, Variable FROM sensors WHERE SensorID IN($sensorids)";
$result2 = mysql_query($query2, $con) or die('query not made');
$sensors = mysql_fetch_array($result2);
echo $sensors;
Run Code Online (Sandbox Code Playgroud)
我想要只获得具有SensorID的传感器,这也是'sensorids'数组中的值.当我运行代码时,我得到以下内容:
Notice: Array to string conversion in C:\...\test.php on line 10
query not made
Run Code Online (Sandbox Code Playgroud)
当我删除"$"时如下:
$query2 = "SELECT SensorID, Variable FROM sensors WHERE SensorID IN(sensorids)";
Run Code Online (Sandbox Code Playgroud)
通知消失了,但仍然没有进行查询.
'sensorids'数组的格式有问题吗?
另外,'echo'是呈现数组的正确方法还是应该使用其他方法?
非常感谢!
您不必使用implode任何东西,只需合并您的查询即可
SELECT SensorID, Variable FROM sensors WHERE SensorID IN
(
SELECT id FROM nodesensors WHERE NodeID=2
)
Run Code Online (Sandbox Code Playgroud)
所有implode基础答案的注释:
只有当他们在第一个查询中只选择1列时,它才会起作用,它们会SELECT *产生多维数组并且不包含传感器ID,因此会失败.请参阅diEcho的更新答案以了解更多相关信息.
并使用更新,更安全的MySQL扩展
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |