我的IF功能不​​起作用

时间:2014-05-12 15:56:29

标签: php mysql binary hex

所以,

我运行Minecraft服务器并在单独托管的服务器上有一个网站。我使用bukkit插件,当玩家加入时,它会向数据库发送一个值。存储为[BLOB - 1 B](下图),这是一个二进制值,因此我将其转换为十六进制,然后检查其值。作为它的布尔值,它可以是00 - 假或01 - 真。但是当使用我的if语句检查值是什么时,如果值为00,它仍然在线说...

My database

但是当我在我的网络服务器上使用此代码时:

<form action="skript2.php" method="get">  
<input type="text" name="user" />
<input type="submit" name="submit" value="Username" />
</form>
<?php
$uname = $_GET['user'];
$con=mysqli_connect("#####","#####","#####","#####");
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT * FROM `variables21` WHERE name='db_sdb.$uname.onlinemode'");
if($row = mysqli_fetch_array($result)) {
  $val = $row['value'];
  $str = bin2hex("$val");
  echo "$str";
  if ($str = 01) {
    echo "<body bgcolor=\"green\">";
    echo "<font color=\"white\"><img src=\"https://minotar.net/helm/$uname/32\"> -- $uname is online!</font>";
  }
  if ($str = 00) {
    echo "<body bgcolor=\"red\">";
    echo "<font color=\"white\"><img src=\"https://minotar.net/helm/$uname/32\"> -- $uname is offline!</font>";
  }
}

mysqli_close($con);
?>

详细信息#####是私密的,例如密码等。

连接工作正常,否则它会返回一个错误,表示无法连接。

那么为什么我的IF功能不​​起作用呢?

谢谢! :)

2 个答案:

答案 0 :(得分:2)

你需要==运算符

 if ($str == 1) {

}
在您的视图中

if ($str == 1) {
    echo "<body bgcolor=\"green\">";
    echo "<font color=\"white\"><img src=\"https://minotar.net/helm/$uname/32\"> -- $uname is online!</font>";
  }

对于ZERO,您可以使用===运算符

if ($str === 0) {
    echo "<body bgcolor=\"red\">";
    echo "<font color=\"white\"><img src=\"https://minotar.net/helm/$uname/32\"> -- $uname is offline!</font>";
  }

答案 1 :(得分:1)

单个=将值绑定到变量 -

if ($str = 01) {

}

==是比较运算符,将其视为&#39;等于&#39;。

if ($str == 01) {

}