Ошибка синтаксического анализа PHP: синтаксическая ошибка, неожиданное '$_GET' (T_VARIABLE)

Во-первых, да, я провел исследование и видел тонны постов, подобных этому. Я вижу сообщение, которое должно быть дубликатом, но это не помогло. Я очень новичок в этом и не знаю, как применить их результаты к моим. Я получаю этот результат при запуске:

Parse error: syntax error, unexpected '$_GET' (T_VARIABLE) in /storage/ssd4/269/2113269/public_html/updateuser.php on line 12

Вот мой сценарий:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
            $sql = "UPDATE Users ". "SET Status = '"$_GET["status"]"' ".
               "WHERE Username = '"$_GET["username"]"'";
if ($conn->query($sql) === TRUE) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: " . $conn->error;
}

$conn->close();
?>

Спасибо большое за внимание. Возможно, я где-то пропустил точку с запятой, но некоторое время просматривал код. Пожалуйста, дайте мне знать!

3 ответа

Решение

Вы должны объединить строку, используя .

$sql = "UPDATE Users ". "SET Status = '".$_GET["status"]."' ".
               "WHERE Username = '".$_GET["username"]."'";

Вам нужно concatenatestring а также variable с помощью dot(.) правильно, как это

 $sql = "UPDATE Users 
         SET Status = '".$_GET["status"]."' 
         WHERE Username = '".$_GET["username"]."'";

Это потому, что вы заканчиваете и начинаете утверждение с " до и после GET заявление декларация; но не поставил конкатенацию . между " а также GET,

"SELETCT tb FROM db WHERE field = '".GET ['something']."'";

Это также хорошая привычка, чтобы обернуть два GET в IF Заявление и запустить полный код, если бот Get имеет какое-то значение. Уменьшите ненужное выполнение SQL и PHP.

Другие вопросы по тегам