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,没有主密钥集。
答
这是更多的代码审查答案,但它应该帮助你。首先,你需要创建一个函数来检索,而不是包括这样的代码文件的状态:
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
既然你才刚刚开始,我会建议重新开始,并使用[PDO](http://php.net/pdo):) –
' if('$ query'= 1){'should be'if('$ query'== 1){' – DevZer0
@ DevZer0更棒的是,'if($ query == 1)':) –