このクエリ
$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;
}
}
次のエラーが表示されます:
SQL 構文にエラーがあります。使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。1 行目付近で 'key, time) VALUES ('example@domain.net', 'e1e4091197640bae0a4588b8666e87b6b' を使用します。
しかし、上記のクエリは、いくつかのバッククォート (アクサン グラーブ) を追加するだけで機能します。
$queries[] = "INSERT INTO verification (
`email`,
`key`,
`time`
) VALUES (
'$email',
'$key',
$newTime
)";
この変更がどのように問題を解決するのか、誰か説明できますか?