小编Ara*_*ram的帖子

第1行的MySQL语法错误和反引号提供奇怪的解决方案

这个查询

$email = $mysqli->real_escape_string($_POST['email']); // User's email.
$key = RandomString(128); // A random string of 128 characters.
$newTime = $_SERVER['REQUEST_TIME'] + 1800; // Expiration timer.
$queries[] = "INSERT INTO verification (
        email, 
        key, 
        time
    ) VALUES (
        '$email', 
        '$key', 
        $newTime
    )";
$errors = false;

$mysqli->autocommit(false);
foreach ($queries as $query) {
    if (!$mysqli->query($query)) {
        $errors = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

给我以下错误:

您的SQL语法有错误; 检查与您的MySQL服务器版本相对应的手册,以便在"密钥,时间"VALUES附近使用正确的语法('example@domain.net','e1e4091197640bae0a4588b8666e87b6b'在第1行.

但上面的查询有效,只需添加几个反引号(严重重音):

$queries[] = "INSERT INTO verification (
        `email`, 
        `key`, 
        `time`
    ) VALUES (
        '$email', 
        '$key', 
        $newTime
    )";
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释这种变化将如何解决这个问题?

php mysql sql registration

4
推荐指数
1
解决办法
412
查看次数

标签 统计

mysql ×1

php ×1

registration ×1

sql ×1