Estoy usando esta biblioteca para conectar mi aplicación node js a una base de datos sqlite. Vi su documentación sobre cómo usar declaraciones preparadas aquí , pero es muy breve y no puedo entender cómo usarla para mi caso de uso.
Digamos que tengo una cadena sql como esta:
const sql = "INSERT INTO tbl(name) VALUES (?)"Entonces, según la documentación, supongo que primero debería crear una declaración y luego usar bind para completarla:
const stmt = await db.prepare(sql) stmt.bind({? : "John"})¿Es esta la manera correcta de hacer esto? Además, una vez que haya creado la declaración Preparada, ¿cómo se supone que debo ejecutar esto? Todos los ejemplos mencionados en los documentos son declaraciones de selección, pero si se trata de una declaración de inserción, supongo que los métodos stmt.get() o stmt.all() no son correctos ya que no hay un conjunto de resultados para devolver aquí. Entonces, ¿cómo se supone que debo hacer esto?
No conozco muy bien la biblioteca sqlite , pero el siguiente ejemplo de la documentación realiza una INSERT parametrizada:
const result = await db.run('INSERT INTO tbl(col) VALUES (:col)', { ':col': 'something' }) Creo que te estás enfocando demasiado en la frase 'declaración preparada'. En lugar de buscar solo esta frase exacta, busque cualquier uso de parámetros cuyos valores se pasen por separado a la cadena SQL principal. El ejemplo anterior se ajusta a esto: hay un parámetro :col que aparece en la cadena SQL y su valor se proporciona en un objeto pasado a db.run junto con la cadena SQL.