PHP-MySQL检查只返回False

问题描述:

我很快设计了一个非常简单的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)':) –

这是更多的代码审查答案,但它应该帮助你。首先,你需要创建一个函数来检索,而不是包括这样的代码文件的状态:

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