正确的SQL查询在PHP中返回错误的结果?

时间:2012-10-10 23:43:23

标签: php sql mysqli

    // 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 />");

基本上,我要做的是如下:

  1. 从一些日志文件中解析一些数据并将它们存储在变量中 - &gt;&gt;这里没问题
  2. 通过查询将此数据发送到我的数据库
  3. 问题是我在codetags中包含的查询,它应该执行以下操作:

    1. 检查数据库以查看当前SteamID是否在数据库中具有playerID - 如果它确实返回其playerID。
    2. 问题是,即使根本没有返回任何行,查询总是会返回1而不管它实际应该返回什么。我无法弄清楚为什么。

      我在我的PHP脚本之外运行了这个SQL语句,它运行得很好......

      我有办公桌多次检查变量,甚至在脚本运行时打印它们以确保它们包含正确的值...它们是!我现在该怎么办?

      感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

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

要解决此问题,我只是在查询上方声明$ in_playerID。

$in_playerID = 0;