You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP出现unexpected 'if' (T_IF)报错却无语法错误的排查解决

问题描述

我一直遇到T_IF报错,但找不到任何语法错误。最初我把SQL语句的分号写在了双引号内部,修复该问题后错误仍然存在。我也尝试过清除缓存排除缓存影响,还是没有解决问题。

完整代码
<?php
require_once 'requires-requires.php';
require 'requires-vars.php';

$mainUser = $row[user];

$coinUser = $mainUser;
$coinExperience = 0;
$coinCoins = 0;
$coinLevels = 0;

$coinUser = mysql_real_escape_string($coinUser);
$coinExperience = mysql_real_escape_string($coinExperience);
$coinCoins = mysql_real_escape_string($coinCoins);
$coinLevels = mysql_real_escape_string($coinLevels);

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $servername = "localhost";
    $user = "username";
    $pass = "password";
    $dbname = "databasename";
    $conn = new mysqli($servername, $user, $pass, $dbname);

    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }

    $usercheck = $conn->query("SELECT user FROM coinchaser WHERE user = '$coinUser'");
    $rows_count_value = mysqli_num_rows($usercheck);

    if($rows_count_value != 0){
        $usernameMatchErr = "You Have Already Joined This Game";
    } else {
    $sql = "INSERT INTO coinchaser (user, experience, levels, coins) VALUES ('$coinUser', '$coinExperience', '$coinLevels', '$coinCoins')";

    if ($conn->query($sql) === TRUE) {
        echo "Record updated successfully";
    } else {
        echo "Error updating record: " . $conn->error;
    }
    $conn->close();
        }
}

?>

    <div class="wrapper">
        <h2>GAMES</h2>
        <p> Game: Description </p>

        <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
            <div class="form-group">
                <input type="submit" class="btn btn-primary" value="Coin Chaser">
            </div>    
        </form>
    </div>
    
</body>
</html>
问题定位

已补充该页面的完整代码。$row[user]来自其中一个引入的文件,在我添加下方代码之前这部分运行正常,因此可以确认该部分没有问题。问题仍然出现在以下代码段:

$sql = "INSERT INTO coinchaser (user, experience, levels, coins) VALUES ('$coinUser', '$coinExperience', '$coinLevels', '$coinCoins')";

if ($conn->query($sql) === TRUE) {
调试说明

我在当前使用的笔记本上调试PHP时遇到了障碍,这台设备平时主要用来做JavaScript/HTML/CSS开发,我忘记了调试PHP需要先安装PHP环境。目前我正在清理旧笔记本准备开机,打算在上面做快速PHP调试。

后续开发计划

我后续计划把实际的后端操作单独放到独立页面,目前我还在学习SQL阶段,把所有代码放在同一个页面更方便我排查可能出现的语法错误,不用在两个页面之间来回跳转查找我可能犯的语法错误。

问题解决方案

我已经解决了这个问题。我不清楚具体原因,但似乎代码不接受数据库字段命名为user。我的拼写正确,没有语法问题。我直接进入数据库,把字段名改为username,回到文件中把代码里的user替换为username之后,代码就完美运行了。


内容的提问来源于stack exchange,提问作者Jason Singell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:06:08