Sebenarnya, Anda baru saja membuat kesalahan kecil - mungkin kesalahan salin tempel.
Baris berikut membutuhkan 8 parameter, bukan 4 karena Anda menempatkan tanda tanya di tempat yang seharusnya Anda masukkan nama kolom.
insert into `stocks`(?,?,?,?) values (?,?,?,?);";
Jika Anda memodifikasinya sebagai berikut (mengganti nama kolom dengan nama asli Anda dari tabel saham) maka itu akan berfungsi seperti yang Anda harapkan.
insert into stocks(ColumnNameOne, ColumnNameTwo, ColumnNameThree, ColumnNameFour)
values (?, ?, ?, ?);