0

我很快为 PHP 设计了一个非常简单的检查脚本来说明某事是在线还是离线。

但是,关于我在状态表下的 MySQL 数据库中设置的 ID 号,它始终返回“离线”。我试过大于、小于和等于。

返回码

                <?php
                    require ('status.php');
                        if ( '$query' = 1 ) {
                        print mysql_error();
                        echo "Radio is Offline";
                        } else {
                        echo "Radio is Online";
                    } 
                ?>

状态.php

<?php
$hostname = "localhost";
    $username = "removed";
    $password = "removed";
    $dbname = "removed";
    mysql_connect($hostname, $username, $password) OR DIE ("Unable to 
        connect to database! Please try again later.");
    mysql_select_db($dbname);
    $query = "SELECT ID FROM status";
?>

表结构为“状态” ID 字段为整数类型,长度为 1,未设置主键。

4

1 回答 1

4

这更像是一个代码审查答案,但它仍然应该对您有所帮助。首先,您需要创建一个函数来检索状态,而不是通过这种方式包含代码文件:

function getStatusId($db)
{
    $result = $db->query('SELECT ID FROM status');
    $rows = $result->fetchAll(PDO::FETCH_COLUMN, 0);

    return current($rows); // return first row or false
}

此函数将现有数据库连接作为其输入并返回 ID 列的值。调用它:

// create database connection
$db = new PDO('mysql:dbname=removed', 'removed', 'removed');

// call your function
if (getStatusId($db) == 1) {
    echo 'on';
} else {
    echo 'off';
}

也可以看看:PDO

于 2013-07-17T02:14:27.657 回答