0

何かがオンラインかオフラインかを示す、PHP 用の非常に単純なチェック スクリプトをすぐに設計しました。

しかし、ステータステーブルの下のMySQLデータベースに設定したID番号に関しては、常に「オフライン」を返します。Greater Than、Less Than、Equal to を試しました。

戻りコード

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

Status.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 に答える