我试图检索bool或tinyint的值。使用来自php.net的示例。当我运行脚本时,我得到" 0结果"或"数组",取决于我的查询是否有结果。
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "testdb";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT OnOff FROM mission_control limit 1";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "$row";
}
} else {
echo "0 results";
}
$conn->close();
?>
在命令行中,我可以这样做......
mysql> select * FROM mission_control WHERE id=1;
+----+-------+
| id | OnOff |
+----+-------+
| 1 | 0 |
+----+-------+
1 row in set (0.00 sec)
我只会有1个ID(我考虑删除它),但我只关心检索&#34; OnOff&#34;的值。
奖金问题如何将结果0或1分配给我可以执行的变量&#34; IF&#34;声明?
答案 0 :(得分:3)
fetch_assoc
返回一个数组,因此echo "$row"
只会输出&#34;数组&#34;。而是引用列名:
while($row = $result->fetch_assoc()) {
echo $row['OnOff'];
}
答案 1 :(得分:3)
@nyitguy,你要求php给你一个关联数组。
$row = $result->fetch_assoc()
所以你得到一个阵列,这就是你的回声。
您想要的值是$row['OnOff']
,而不是$row
。