Dengan database diinisialisasi, mari kita pastikan kita dapat menyimpan data di sana.
Jadi kembali ke db. file js di folder helpers, kita dapat menambahkan konstanta baru, masukkan
tempat misalnya yang
saya ekspor dan sekarang di sini saya ingin mendapatkan judul tempat, saya ingin mendapatkan imageUri, saya ingin mendapatkan alamat
dan juga lintang dan bujur, jadi saya ingin mendapatkan semua data yang membentuk tempat dan di sana,
sekarang saya ingin memasukkan tempat ke dalam basis data. Untuk itu, kami akan menggunakan sintaks yang sama
seperti di sini sehingga saya bisa menyalin ini karena saya juga ingin memiliki janji sebagai pembungkus di sini
sehingga saya dapat dengan mudah menggunakan itu dan menangkap atau async menunggu di tempat saya memanggil tempat
memasukkan tapi tentu saja kueri yang saya jalankan sekarang berbeda.
Alih-alih membuat tabel, saya sekarang ingin memasukkan
data ke dalam tabel dan itu selesai dengan perintah insert to.
Sekarang Anda perlu menentukan tabel dan tempat-tempat itu dan kemudian di antara tanda kurung, bidang yang ingin Anda targetkan di
sana dan
tentu saja saya ingin menargetkan semua bidang kecuali ID karena seperti yang saya sebutkan, itu akan di-autogenerasi yang sangat
nyaman untuk digunakan. Tentu saja
tetapi saya ingin menargetkan bidang judul saya dan sekarang Anda perlu memastikan Anda cocok dengan nama-nama yang
Anda siapkan di sana untuk kolom
Anda, Anda harus mencocokkan nama-nama ini di sini sekarang.
Urutannya tidak harus sama tetapi penamaannya penting, jadi saya ingin
menargetkan judul, imageUri, itu juga
nama yang saya pilih di sana, kan?
Jadi imageUri, alamat, lintang dan
bujur dan sekarang kita
perlu menentukan nilai apa yang harus dimasukkan di sana.
Anda melakukannya dengan menambahkan kata kunci nilai di sini setelah daftar kolom yang ingin Anda targetkan dan sekarang
Anda memiliki sepasang tanda kurung di sini di mana Anda menentukan nilai yang harus masuk ke masing-masing
kolom ini.
Sekarang urutan nilai di sini tentu saja harus sesuai dengan urutan pengidentifikasi kolom yang Anda
miliki di sini, sehingga nilai pertama yang Anda masukkan di sini akan masuk ke judul, imageUri adalah nilai kedua dan seterusnya.
Sekarang apa yang bisa Anda lakukan di sini adalah Anda dapat menggunakan tentu saja kutu
kembali bukan tanda kutip tunggal dan kemudian misalnya menyuntikkan judul di sini dan kemudian memiliki koma dan kemudian imageUri dan sebagainya.
Anda bisa melakukan itu dan itu akan berhasil
tetapi ini tidak
akan baik, ini tidak aman, itu membuka pintu untuk pola serangan yang disebut SQL injection, di mana pengguna bisa memasukkan kode berbahaya
di sana dan menjalankan kueri lain yang dapat memecahkan data.
Tentu saja dalam aplikasi ini yang merupakan basis data lokal di perangkat pengguna ini, yang mungkin
tidak terlalu buruk tapi tetap kami ingin mempertahankannya dan karena itu di sini, Anda benar-benar menggunakan beberapa penampung, Anda menambahkan
tanda tanya di sini dan Anda perlu untuk menambahkan tanda tanya sebanyak yang Anda butuhkan untuk memasukkan nilai.
Jadi di sini saya memasukkan lima nilai, maka di sini saya memiliki lima tanda tanya yang dipisahkan oleh koma.
Sekarang nilai konkret untuk tanda tanya disediakan dalam argumen kedua yang Anda lewati untuk
mengeksekusi SQL, array argumen ini. Sebelumnya itu kosong, sekarang
kita mengisi argumen dalam urutan yang kita butuhkan,
jadi judul pertama, lalu imageUri dan seterusnya dan paket SQL kemudian akan menukar tanda tanya ini dengan
nilai kita tetapi tidak sebelum memvalidasi mereka untuk memastikan bahwa serangan injeksi tidak bisa terjadi.
Jadi kita mendapatkan beberapa validasi otomatis tambahan dengan menggunakan pendekatan ini dan kemudian kita dapat memasukkan judul di sini, maka
bagian kedua dari data adalah imageUri, maka kita memerlukan alamat,
maka kita membutuhkan
garis lintang dan kemudian kita membutuhkan garis bujur, jadi
ini adalah bagaimana kami sekarang mengirimkan data kami ke dalam kueri ini. Sekarang dalam fungsi-fungsi sukses ini, seperti yang saya
sebutkan argumen pertama selalu seperti pengulangan permintaan Anda tetapi argumen kedua adalah kesalahan
atau di sini hasil dari permintaan ini dan di sini
saya ingin menyelesaikan hasil ini sehingga di tempat di mana kami menyebutnya insert place, kami
benar-benar kemudian dapat mendengarkan penyelesaian dari janji dan mendapatkan hasil kami dari permintaan ini yang seharusnya menjadi
beberapa informasi tentang catatan yang telah dibuat.
Jadi sekarang kita bisa memanggil tempat memasukkan dan tentu saja tempat di mana saya ingin menyebutnya lagi adalah file tindakan
tempat saya.
Di sana kami memindahkan gambar, di
sana saya sekarang juga ingin menjangkau database saya dan menambahkan entri. Untuk melakukan itu di sini pertama-tama, mari
kita mengimpor metode tempat insert ini dari folder helpers dan di sana, dari file db dan dengan yang diimpor, di tambahkan tempat setelah menyelesaikan sistem
file kita dan seterusnya, di sini saya tentu saja juga, masih
di blok coba tangkap, ingin mencoba memasukkan data ke dalam basis data.
Ini juga
bisa gagal, jadi memilikinya di blok percobaan bukanlah ide terburuk.
Jadi di sini saya dapat memanggil tempat penyisipan dan itu mengembalikan janji karena kami memiliki janji kami sendiri di
sana, jadi kami dapat
menunggu ini dan saya mendapatkan kembali hasil DB saya setelahnya, jadi saya akan menyimpan ini di
tempat yang konstan dan sekarang menyisipkan tempat tentu saja membutuhkan judul, imageUri, alamat, garis lintang dan bujur.
Sekarang karena itu saya akan meneruskan judul saya yang
sudah saya miliki, saya akan meneruskan jalur baru yang merupakan imageUri saya dan sekarang untuk alamat, saya akan menggunakan alamat dummy karena kami belum
memiliki alamat asli. Untuk garis lintang,
saya akan menggunakan angka dummy 15. 6 dan untuk bujur, katakanlah 12. 3.
Sekarang ini mungkin di tengah lautan, saya tidak tahu, tetapi setidaknya
kita memiliki beberapa koordinat di sini yang dapat kita gunakan untuk sekarang sampai kita dapat mengambil lokasi nyata.
Sekarang hasil db ini tentu saja menarik, jadi mari kita konsol login dan mari kita juga memastikan bahwa
kita hanya mengirimkan tindakan ini dan oleh karena itu sentuh toko Redux kita jika kita berhasil dengan
filesystem dan tindakan basis data, jadi di
dalam coba blokir dan sekarang, mari kita lihat ini. Sekarang kita harus dapat menyimpan data dalam
database, jadi
mari kita uji ini di Android di mana kita dapat
mengambil gambar, ini adalah tes.
Mari kita mengambil gambar di sini dan melihat apakah semua itu bekerja sekarang memotong gambar itu dan menyimpan tempat ini.
Ini berfungsi dan
di sini kita melihat beberapa output, kita melihat ini adalah hasil dari tindakan basis data kita
dan kita melihat bahwa satu baris terpengaruh karena satu baris dimasukkan dan kami juga mendapatkan kembali ID
yang secara otomatis dibuat.
Ini adalah ID numerik di sini tapi itu tentu saja tidak
ada masalah, jadi sekarang kita juga dapat menggunakan ID ini dalam peredam kami alih-alih secara manual membuat ID snapshot keadaan
ini di sini.
Jadi itu peningkatan kecil, ketika
kami mengirimkan tindakan kami di sini di tempat data, saya sekarang juga ingin memberikan ID dan ID yang dapat diambil dari
konstanta hasil DB dan di sana, itu di bidang masukkan ID di sini seperti yang Anda lihat
, jadi mari kita akses masukkan ID di sini. Karena itu, sekarang di peredam, kita tidak perlu lagi menghasilkan seperti ini, sebaliknya di sini
kita bisa merujuk ke tindakan. placeData. Indo.
Sekarang perlu diingat ada nomor, di sini saya sebenarnya ingin memiliki string meskipun
Anda juga bisa menyimpan nomor tetapi saya akan mengubahnya menjadi string di sini dan dengan itu, kami sekarang juga
menggunakan ID itu, kami menyimpan itu dalam database. Tentu saja sekarang akan lebih baik untuk memuat semua data kami setiap
kali aplikasi kami restart karena saat ini ketika restart, data masih
hilang, itu tidak benar-benar hilang, itu bukan database tetapi
kami tidak melihatnya di sini karena kami jangan memuat ini ke toko Redux kami yang tentu saja adalah data yang kami
gunakan di aplikasi yang berjalan.
Jadi kita perlu memastikan kita memuat data ke toko Redux ketika aplikasi ini dimulai.