SQL语法错误,不知道为什么

ket*_*o23 -1 php sql

我正在尝试运行PHP脚本,但每次运行它时都会遇到此错误.

错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''id', 'firstname', 'lastname', 'email', 'username', 'password', 'hash', 'active'' at line 1
Run Code Online (Sandbox Code Playgroud)

PHP:

<?php
require('includes/connect.php');

if($_POST['submit'] == true) {

    $firstname = mysql_real_escape_string($_POST['firstname']);
    $lastname = mysql_real_escape_string($_POST['lastname']);
    $email = mysql_real_escape_string($_POST['email']);
    $username = mysql_real_escape_string($_POST['username']);
    $password = mysql_real_escape_string($_POST['password']);
    $hash = mysql_real_escape_string(md5(uniqid(rand(), true)));
    $active = mysql_real_escape_string(0);

    $query = mysql_query(" INSERT INTO users_main ( 'id', 'firstname', 'lastname', 'email', 'username', 'password', 'hash', 'active' ) VALUES ( '', '" . $firstname . "', '" . $lastname . "', '" . $email . "', '" . $username . "', '" . $password . "', '" . $hash . "', '" . $active . "' ) ") or die(mysql_error());

} else {

}

?>
Run Code Online (Sandbox Code Playgroud)

Mic*_*ski 6

不要使用单引号引用列名称.MySQL使用反引号来引用列和表标识符.

如果用作标识符,则需要使用反引号引用某些特殊关键字,但您没有使用任何这些关键字.您的所有列都不需要引用.

 $query = mysql_query(" INSERT INTO users_main ( id, firstname, lastname, email, username, password, hash, active ) VALUES ( '', '" . $firstname . "', '" . $lastname . "', '" . $email . "', '" . $username . "', '" . $password . "', '" . $hash . "', '" . $active . "' ) ") or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)