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

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

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

问题是我在代码标签中包含的查询,它应该执行以下操作:

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

问题是,查询似乎总是返回 1,不管它应该实际返回什么,即使根本没有返回任何行。我不知道为什么。

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

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

任何帮助表示赞赏。

4

1 回答 1

0

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

为了解决这个问题,我只是在查询上方声明了 $in_playerID。

$in_playerID = 0;

于 2012-10-11T01:20:36.403 回答