无法使用文本输入值将数据插入数据库
Unable to insert data to database using textinput value
我想插入从 textinput 检索的数据并将其存储到数据库中 table。
我尝试将文本输入值作为 this.state.text1 传递,但它没有插入,也没有执行任何操作
sync (){
console.log('inside sync function');
const { value1 } = this.state.text1;
console.log('value1 is' +this.state.text1 );
db.transaction(function(txn) {
txn.executeSql(
"INSERT INTO " +
localDB.tableName.tblLogin +
" (text1,text2) VALUES (:text1,:text2)",
[
+this.state.text1,
"native3"
]
);
});
console.log('insert values success');
console.log(this.state.text1);
console.log(this.state.text2);
}
应将 result:The textinput 值插入到 table 数据库内部
实际 result:No 值被插入 database.It 在查询时在数据库中显示 NULL。
将您的查询更改为
async sync = () => {
console.log('inside sync function');
console.log('text1 is' + this.state.text1 );
await db.transaction((txn) => {
txn.executeSql(
`INSERT INTO ${localDB.tableName.tblLogin}(text1,text2) VALUES (?,?)`,
[this.state.text1,"native3"],
(r) => {console.log("success" , r);},
(error) => {console.log("error is", error);}
);
});
console.log('insert values success');
console.log(this.state.text1);
}
尝试使用 setTimeout(() =>
将插入延迟 1 秒。 React 的 this.setState
不是即时的。
sync (){
console.log('inside sync function');
const { value1 } = this.state.text1;
console.log('value1 is' +this.state.text1 );
setTimeout(() => {
db.transaction(function(txn) {
txn.executeSql(
"INSERT INTO " +
localDB.tableName.tblLogin +
" (text1,text2) VALUES (:text1,:text2)",
[
+this.state.text1,
"native3"
]
);
});
}, 1000);
console.log('insert values success');
console.log(this.state.text1);
console.log(this.state.text2);
}
我想插入从 textinput 检索的数据并将其存储到数据库中 table。
我尝试将文本输入值作为 this.state.text1 传递,但它没有插入,也没有执行任何操作
sync (){
console.log('inside sync function');
const { value1 } = this.state.text1;
console.log('value1 is' +this.state.text1 );
db.transaction(function(txn) {
txn.executeSql(
"INSERT INTO " +
localDB.tableName.tblLogin +
" (text1,text2) VALUES (:text1,:text2)",
[
+this.state.text1,
"native3"
]
);
});
console.log('insert values success');
console.log(this.state.text1);
console.log(this.state.text2);
}
应将 result:The textinput 值插入到 table 数据库内部
实际 result:No 值被插入 database.It 在查询时在数据库中显示 NULL。
将您的查询更改为
async sync = () => {
console.log('inside sync function');
console.log('text1 is' + this.state.text1 );
await db.transaction((txn) => {
txn.executeSql(
`INSERT INTO ${localDB.tableName.tblLogin}(text1,text2) VALUES (?,?)`,
[this.state.text1,"native3"],
(r) => {console.log("success" , r);},
(error) => {console.log("error is", error);}
);
});
console.log('insert values success');
console.log(this.state.text1);
}
尝试使用 setTimeout(() =>
将插入延迟 1 秒。 React 的 this.setState
不是即时的。
sync (){
console.log('inside sync function');
const { value1 } = this.state.text1;
console.log('value1 is' +this.state.text1 );
setTimeout(() => {
db.transaction(function(txn) {
txn.executeSql(
"INSERT INTO " +
localDB.tableName.tblLogin +
" (text1,text2) VALUES (:text1,:text2)",
[
+this.state.text1,
"native3"
]
);
});
}, 1000);
console.log('insert values success');
console.log(this.state.text1);
console.log(this.state.text2);
}