2012-10-10 148 views
0
// check if user exists 
     $query = "SELECT playerID FROM PLAYERS where steamid = ? LIMIT 1"; 
      if (mysqli_stmt_prepare($stmt, $query)) { 
       echo "Steamid: $in_steamID...<br />"; 
       mysqli_stmt_bind_param($stmt, 's', $in_steamID); 
       mysqli_stmt_bind_result($stmt, $out_playerID); 
       mysqli_stmt_execute($stmt); 
       if (mysqli_stmt_fetch($stmt)) { 
        $in_playerID = $out_playerID; 
       } 
      } 
      echo ("Player ID: $in_playerID <br />"); 

基本上,我试图做的是如下:正确的SQL查询在PHP中返回错误的结果?

  1. 从一些日志文件解析的一些数据,并将它们存储在变量 - >>点击这里
  2. 没有问题,通过查询来发送数据我的数据库

的问题是我已经包括在codetags查询,应该做到以下几点:

  1. 检查数据库以查看当前SteamID是否在数据库中有playerID - 如果它确实返回其playerID。

问题是,即使没有返回任何行,查询总是返回1,无论它应该实际返回什么。我无法弄清楚为什么。

我已经跑这条SQL语句我的PHP脚本之外,它完美的作品...

我已经办公桌检查变量多次和脚本在运行时甚至打印了出来,以确保它们包含正确的值他们是!我现在应该怎么做?

任何帮助表示赞赏。

+0

如果只查询一个失败的请求只发布了,我们不需要或不希望看到所有不涉及 – 2012-10-10 23:52:20

+0

你要我删除的其他代码的问题的代码?为了背景,我把它留在那里。我很抱歉。 – anditpainsme

+0

@Dagon我已经删除了不相关的代码,并重新构建了我的问题,如果你想现在看看。谢谢。 – anditpainsme

回答

0

当行未被返回时,变量$ in_playerID永远不会被赋予一个值。默认情况下,$ in_playerID似乎包含1.我只能假设这必须是一些随机存储器地址的内容。

要解决这个问题,我只需在查询上面声明$ in_playerID即可。

$in_playerID = 0;