是否更正在PHP中返回错误结果的SQL查询? //检查用户是否存在 $query=“从steamid=?限制1”的玩家中选择playerID”; if(mysqli_stmt_prepare($stmt,$query)){ 回声“蒸汽ID:$in_蒸汽ID…”; mysqli_stmt_bind_param($stmt,'s',$in_steamID); mysqli\u stmt\u bind\u result($stmt,$out\u playerID); mysqli_stmt_execute($stmt); 如果(mysqli_stmt_fetch($stmt)){ $in_playerID=$out_playerID; } } echo(“玩家ID:$in_playerID”);
基本上,我想做的是:是否更正在PHP中返回错误结果的SQL查询? //检查用户是否存在 $query=“从steamid=?限制1”的玩家中选择playerID”; if(mysqli_stmt_prepare($stmt,$query)){ 回声“蒸汽ID:$in_蒸汽ID…”; mysqli_stmt_bind_param($stmt,'s',$in_steamID); mysqli\u stmt\u bind\u result($stmt,$out\u playerID); mysqli_stmt_execute($stmt); 如果(mysqli_stmt_fetch($stmt)){ $in_playerID=$out_playerID; } } echo(“玩家ID:$in_playerID”);,php,sql,mysqli,Php,Sql,Mysqli,基本上,我想做的是: 解析一些日志文件中的数据并将它们存储在变量中->>这里没有问题 通过查询将此数据发送到我的数据库 问题在于我在代码标签中包含的查询,它应该执行以下操作: 检查数据库,查看当前的streamid在数据库中是否有playerID-如果它返回了playerID 问题是,查询似乎总是返回1,而不管它实际应该返回什么,即使根本没有返回任何行。我不明白为什么 我在我的PHP脚本之外运行了这个SQL语句,它工作得非常好 我多次检查变量,甚至在脚本运行时打印它们,以确保它们包含正确的值。。
非常感谢您的帮助。当不返回行时,变量$in\u playerID永远不会被赋予值。默认情况下,$in_playerID似乎包含1。我只能假设这一定是某个随机内存地址的内容 为了解决这个问题,我只是在查询上方声明$in_playerID
$in\u playerID=0代码>如果只有一个查询失败,请只发布它,我们不需要或不想看到与问题无关的所有代码。是否要我删除其他代码?我把它放在那里是为了上下文。我很抱歉。@Dagon如果您现在想看一看,我已经删除了不相关的代码并重新构造了我的问题。谢谢
// 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 />");