“Unexpected T_OBJECT_OPERATOR” error in PHP

jeremycollins picture jeremycollins · Mar 15, 2011 · Viewed 26.9k times · Source

I am getting the following error:

Parse error: syntax error, unexpected T_OBJECT_OPERATOR in.. on line 52.

Line 52 is if ($result = mysqli->query.... If I comment out the line, the same error occurs on $mysqli->query("INSERT INTO....

Why does this give the error?

$unique_code = "";
$inserted = false;
while(!$inserted) {
    $unique_code = generateCode();
    echo $unique_code;

    // Check if it exists
    if ($result = mysqli->query("SELECT unique_code FROM coming_soon_emails WHERE unique_code = '$unique_code'")) {
        // Check no record exists
        if ($result->num_rows == 0) {
            // Create new record
            $mysqli->query("INSERT INTO coming_soon_emails (email,unique_code) VALUES ('" . $mysqli->real_escape_string($_POST['email']) . "','$unique_code')");
            // Set inserted to true to ext loop
            $inserted = true;
            // Close the result object
            $result->close();
        }
    } else {
        // Quit if we can't check the database
        die('Something went wrong with select');
    }   
}

Answer

Michiel Pater picture Michiel Pater · Mar 15, 2011

You forgot the dollar sign before $mysqli.