2013-07-17 50 views
0

我很快設計了一個非常簡單的PHP腳本檢查腳本,以指明是聯機還是脫機。PHP-MySQL檢查只返回False

但是關於我在狀態表下的MySQL數據庫中設置了什麼ID號,它總是返回「離線」狀態。我嘗試過大於,小於和等於。

返回代碼

   <?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,沒有主密鑰集。

+1

既然你纔剛剛開始,我會建議重新開始,並使用[PDO](http://php.net/pdo):) –

+1

' if('$ query'= 1){'should be'if('$ query'== 1){' – DevZer0

+1

@ DevZer0更棒的是,'if($ query == 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

+0

完美的作品,謝謝。 –

+0

+1,以便花時間解釋關於pdo的使用 – DevZer0