"哎呀!错误是无法准备语句(1接近“当”语法错误)(代码5);

"Oops! error was could not prepare statement (1 near "when" syntax error) (Code 5)"

本文关键字:错误 接近 语法 代码 哎呀 quot 语句      更新时间:2023-09-26

我正试图在我的jqTouch web应用程序中使用javascript表单,但当我单击"提交"按钮时,它什么也不做,Chrome弹出消息:"哎呀!error was cannot prepare statement(1 near"when"syntax error)(Code 5)"

我的HTML:

<div id="createEntry">
        <div class="toolbar">
            <h1>New Entry</h1>
            <a class="button cancel" href="#">Cancel</a>
        </div>
        <form method="post">
            <ul class="rounded">
                <li><input type="text" placeholder="What" name="what" id="what"></li>
                <li><input type="text" placeholder="When" name="when" id="when"></li>
                <li><input type="text" placeholder="Comments" name="comments" id="comments"></li>
                <li><input type="submit" class="submit" name="action" value="Save Entry"></li>
            </ul>
        </form>
    </div>

这是我的javascript:

var jQT= $.jQTouch({
icon:'kilo.png'
});
var db;
$(document).ready(function(){ 
$('#createEntry form').submit(createEntry);
});
var shortName = 'AstronomersAid';
var version = '1.1';
var displayName = 'AstronomersAid';
var maxSize = 65536;
db = openDatabase(shortName, version, displayName, maxSize);
// database upgrade function as described on page 133.
if (db.version == '1.0') {
    db.changeVersion('1.0', version,
        function(transaction) {
            transaction.executeSql(
                'ALTER TABLE entries ' +
                ' ADD COLUMN longitude TEXT');
            transaction.executeSql(
                'ALTER TABLE entries ' +
                ' ADD COLUMN latitude TEXT');
        },
        function(e) {
            alert('DB upgrade error: ' + e.message);
        }
    );
} else if (db.version == '') {
    db.changeVersion('', version);
} // end database upgrade.
function refreshEntries() {
var currentDate = sessionStorage.currentDate;
$('#passport h1').text(currentDate);
$('#passport ul li:gt(0)').remove();
db.transaction( function(transaction)
{
 transaction.executeSql(
   'SELECT * FROM entries WHERE date = ? ORDER BY food;',
   [currentDate], function (transaction, result) 
     { for (var i=0; i < result.rows.length; i++) 
      {
       var row = result.rows.item(i);
       var newEntryRow = $('#entryTemplate').clone();
       newEntryRow.removeAttr('id');
       newEntryRow.removeAttr('style');
       newEntryRow.data('entryId', row.id);
       newEntryRow.appendTo('#passport ul');
       newEntryRow.find('.label').text(row.what);
       newEntryRow.find('.when').text(row.when);
       newEntryRow.find('.delete').click(function(e) {
           var clickedEntry = $(this).parent();
           var clickedEntryId = clickedEntry.data('entryId');
           deleteEntryById(clickedEntryId);
           clickedEntry.slideUp();
           e.stopPropogation();
           });
           newEntryRow.click(entryClickHandler);
       }
       }, errorHandler
       );
   }
 );
} // end refreshEntries function.
function entryClickHandler(e){
sessionStorage.entryId = $(this).data('entryId');
db.transaction(
    function(transaction) {
    transaction.executeSql(
        'SELECT * FROM entries WHERE id = ?;', 
        [sessionStorage.entryId], 
        function (transaction, result) {
            var row = result.rows.item(0);
            var what = row.what;
            var when = row.when;
            var comments = row.comments;
            $('#inspectEntry input[name="what"]').val(what);
            $('#inspectEntry input[name="when"]').val(when);
            $('#inspectEntry input[name="comments"]').val(comments);
            jQT.goTo('#inspectEntry', 'slideup');
            }, 
            errorHandler
        );
    }
);
} // end entryClickHandler
function createEntry() {
    var what = $('#what').val();
    var when = $('#when').val();
    var comments = $('comments').val();
    db.transaction(
        function(transaction) {
            transaction.executeSql(
            'INSERT INTO entries (what, when, comments) 
                            VALUES (?, ?, ?, ?);',
            [what, when, comments],
            function(){
                refreshEntries();
                jQT.goBack();
            },
            errorHandler
        );
        }
    );
    return false;
}
function insertEntry(latitude, longitude) {
var what = $('#what').val();
var when = $('#when').val();
var comments = $('#comments').val();
db.transaction(
    function(transaction) {
        transaction.executeSql(
            'INSERT INTO entries (what, when, comments) ' + 
            'VALUES (?, ?, ?);',
            [what, when, comments],
            function(){
                refreshEntries();
                checkBudget();
                jQT.goBack();
            }, 
            errorHandler
        );
    }
);
} // end insertEntry function.
function errorHandler(transaction, error) {
alert('Oops! Error was ' + error.message + ' (Code ' + error.code + ')' );
return true;
} // end errorHandler
function deleteEntryById(id){
db.transaction( function(transaction) {
    transaction.executeSql( 
'DELETE FROM entries WHERE id=?;', [id], null, errorHandler);
}
);
} // end deleteEntryById function.

有人能帮我吗?在过去的三天里,我一直在尝试不同的东西,但都没有成功。

var when = $('#when').val();"when"是一个保留字。请使用另一个变量名。