Reputation: 816
I have a simple table in a sheet (from A1 till B9)
try1 try0
try3 try3
try5 try5
try7 try7
try9 try9
try11 try11
try13 try13
try15 try15
try17 try17
I am using a script to insert the records to a mysql table.
function MysqlData() {
var conn = Jdbc.getConnection('jdbc:mysql://mysite/myddb', 'user', 'pwd');
var stmt = conn.createStatement();
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
for (var i = 0; i < data.length; i++) {
var sql = "INSERT INTO test (field1, field2) VALUES ('" + data[i][0] + "'," + data[i][1] + ")";
var count = stmt.executeUpdate(sql,1)
}
stmt.close();
conn.close();
}
when executing this script on the page including the table, i get the error :
Unknown column 'try0' in 'field list'
What is wrong in my code?
Upvotes: 2
Views: 132
Reputation: 50644
You quoted (''
) value1, but missed value2:
var sql = "INSERT INTO test (field1, field2) VALUES ('" + data[i][0] + "','" + data[i][1] + "')";
However, directly sending strings opens you up to sql injections. Use parameterized statements:
var sql = "INSERT INTO test (field1, field2) VALUES (?, ?)";
var stmt = conn.prepareStatement(sql);
for (var i = 0; i < data.length; i++) {
stmt.setString(1, data[i][0]);
stmt.setString(2, data[i][1]);
stmt.addBatch();
}
stmt.executeBatch();
Upvotes: 2