0

PDO に問題があり、解決策が見つかりません:

私の機能:

public static function create($position, $name, $mail, $mailtext, $confirmed, $key, $formid) {
    global $database;

    try {
        $pdo_result = $database->prepare('INSERT INTO Form (Position, Name, Mail, MailText, Confirmed, Key, Form_idForm) VALUES(:Position, :Name, :Mail, :MailText, :Confirmed, :Key, :Form_idForm)');
        $pdo_result->execute(array(
            ':Position' => $position,
            ':Name' => $name,
            ':Mail' => $mail,
            ':MailText' => $mailtext,
            ':Confirmed' => $confirmed,
            ':Key' => $key,
            ':Form_idForm' => $formid
        ));

        return $database->lastInsertId();
    } catch(PDOException $e) {
        Page::error('Error: Message:', $e->getMessage());
    }

    return null;
}

例外: SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1064 SQL 構文にエラーがあります。near 'Key, Form_idForm) VALUES('Position', 'Name', 'Mail', 'MailText', '1', 'keeey', '' を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。 1行目

4

4 に答える 4

2

必要に応じて、引き続きキーを使用できます。バックティックでラップするだけで、

INSERT INTO Form (
    `Position`, `Name`, `Mail`, `MailText`, 
    `Confirmed`, `Key`, `Form_idForm`)

ただし、今後の問題を回避するために、予約済みのキーワードは使用しないでください。:)

MySQL 予約済みキーワード リスト

于 2013-05-19T20:30:31.887 に答える