0

我正在尝试将 INSERT 插入到我正在开发的 android 应用程序中的 SQLite 数据库中。我有一个包含一些字段的 HTML 表单,我可以从这些字段中获取信息。当我尝试进行 INSERT 时,出现错误:“错误处理 SQL:未定义”。有谁能够帮我?我是一个新手。这是我正在使用的代码:HTML 表单

<form name="editNoteForm" id="editNoteForm" method="post" action="index.html">
  <label for="primeiroNome">1&#186; Nome</label>
    <input type="text" name="primeiroNome" id="primeiroNome">

  <label for="utlimoNome">&Uacute;ltimo Nome</label>
    <input type="text" name="ultimoNome" id="ultimoNome">

  <label for="numeroTelefone">Telefone</label>
    <input type="number" name="numeroTelefone" id="numeroTelefone">

  <input type="submit" onclick="onSubmit();" id="editFormSubmitButton" value="Save Note">

</form>

Javascript代码

function onSubmit() {
         db.transaction(addRowDB, errorCB, successCB);
         alert('Done');
    }

    function addRowDB(tx) {
        var primeiroNome = document.getElementById('primeiroNome').value;
        var ultimoNome = document.getElementById('ultimoNome').value;
        var numeroTelefone = document.getElementById('numeroTelefone').value;
        tx.executeSql('INSERT INTO DEMO (id, nome, ultimo, telefone) VALUES (null, primeiroNome, ultimoNome, numeroTelefone)');

    }

谢谢。

4

2 回答 2

0

我发现了问题。真的是''。所以我寻找一个将它们放在变量之前和之后的函数,它可以工作。代码是这个:

function sqlstr(s) {
    return "'"+s.replace(/'/g, "''")+"'";
}

    function addRowDB(tx) {
        var primeiroNome = document.getElementById('primeiroNome').value;
        var ultimoNome = document.getElementById('ultimoNome').value;
        var numeroTelefone = document.getElementById('numeroTelefone').value;
        tx.executeSql('INSERT INTO DEMO (id, nome, ultimo, telefone) VALUES (null, ' + sqlstr(primeiroNome) + ', ' + sqlstr(ultimoNome) + ', ' + sqlstr(numeroTelefone) + ')');


    }

谢谢您的帮助 :)

于 2012-09-17T15:56:26.183 回答
0
 tx.executeSql('INSERT INTO DEMO (id, nome, ultimo, telefone) VALUES (null, primeiroNome, ultimoNome, numeroTelefone)');

将插入文字值“primeiroNome”...

您需要插入变量 primeiroNome ... 的值(例如,使用连接 (+))

于 2012-09-17T14:45:05.340 回答