我的JavaScript代码有问题,它说错误是:
您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以获取在第1行“''附近使用的正确语法
我正在尝试调用此查询:“ SELECT * FROM wp_fsqm_direct_52”
当我这样调用查询时,它可以很好地连接到数据库并在工作表中显示数据库数据:var sql = 'SELECT * FROM wp_fsqm_direct_52';
但是,当我从工作表var sql = sheetData.getRange("A1").getValue();
的A1单元格中的某个单元格调用完全相同的查询时,它将返回错误。
对不起,我的英语不好,我来自委内瑞拉,这是我第一次来这里。
这是我的代码:
function readFromTable() {
var ss = SpreadsheetApp.getActive();
var sheetDetails = ss.getSheetByName('Details');
var sheetData = ss.getSheetByName('Query Sheet');
var host = sheetDetails.getRange("B1").getValue();
var databaseName = sheetDetails.getRange("B2").getValue();
var userName = sheetDetails.getRange("B3").getValue();
var password = sheetDetails.getRange("B4").getValue();
var tableName = sheetDetails.getRange("B6").getValue();
var url = 'jdbc:google:mysql://' + host + '/' + databaseName;
Logger.log(url);
Logger.log(userName);
Logger.log(password);
var sql = sheetData.getRange("A1").getValue();
try {
var connection = Jdbc.getCloudSqlConnection(url, userName, password);
var results = connection.createStatement().executeQuery(sql);
var metaData = results.getMetaData();
var columns = metaData.getColumnCount();
// Retrieve metaData to a 2D array
var values = [];
var value = [];
var element = '';
// Get table headers
for (i = 1; i <= columns; i++) {
element = metaData.getColumnLabel(i);
value.push(element);
}
values.push(value);
// Get table data row by row
while (results.next()) {
value = [];
for (i = 1; i <= columns; i++) {
element = results.getString(i);
value.push(element);
}
values.push(value);
}
// Cloese connection
results.close();
// Write data to sheet Data
SpreadsheetApp.flush();
sheetData.getRange(2, 1, values.length, value.length).setValues(values);
SpreadsheetApp.getActive().toast('Data has been updated.');
} catch (err) {
SpreadsheetApp.getActive().toast(err.message);
}
}