Ошибка: «У вас есть ошибка в вашем синтаксисе SQL; рядом с '' 'в строке 1» - PullRequest
0 голосов
/ 04 мая 2019

У меня проблема с моим кодом JavaScript, он говорит об ошибке:

У вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '' 'в строке 1

Я пытаюсь вызвать этот запрос: «SELECT * FROM wp_fsqm_direct_52'

Он подключается к базе данных в порядке и показывает данные базы данных на листе, когда я вызываю запрос следующим образом: var sql = 'SELECT * FROM wp_fsqm_direct_52';

Но когда я вызываю точно такой же запрос из ячейки в ячейке A1 влист var sql = sheetData.getRange("A1").getValue();, он возвращает мне ошибку.

Извините за мой плохой английский, я из Венесуэлы, и я здесь впервые.

Это мой код:

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);
  }
}

Ответы [ 2 ]

0 голосов
/ 04 мая 2019

Я считаю, что при запуске SQL в базе данных моего веб-сайта мне нравятся пометки вокруг имен полей и одинарные кавычки вокруг строк, которые я предоставляю. Вот пример, который я только что попробовал.

К сожалению, обратные пометки трудно показать, поэтому здесь, потому что они вызывают окно кода, так что вот изображение, показывающее, что я имею в виду.

enter image description here

0 голосов
/ 04 мая 2019

А1 должен быть простым текстом без кавычек.Вы, кажется, добавили дополнительные кавычки ' в A1.

SELECT * FROM wp_fsqm_direct_52
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...