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
相关产品推荐
相关产品推荐

