php mysqli从db获取bool值

时间:2017-02-01 22:30:45

标签: php mysql mysqli

我试图检索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;声明?

2 个答案:

答案 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