使用单引号创建带变量的Select语句

时间:2013-05-05 06:26:35

标签: select google-fusion-tables

这与从Google Fusion表格中获取数据有关。

当我第一次设置我的网站时,GF tableid是数字值,(var tableid = 123456;)我构建了一个这样的查询:

layer.setQuery("SELECT 'Latitude' FROM " + tableid + " WHERE 'Name' contains etc etc

现在tableid就像var tableid = '12DFty24';,我无法转换setQuery来处理它。

我尝试在tableid周围添加额外的单引号,但这不起作用。反斜杠也没有。

我们将非常感激您的想法!

3 个答案:

答案 0 :(得分:0)

您使用的旧语法无法使用加密ID,数字ID为deprecated

您必须使用新语法更改代码;这是documentation

示例:

new google.maps.FusionTablesLayer({ query: {[FusionTablesQuery object]}});

答案 1 :(得分:0)

好的,这是我的(非工作)尝试:

function searchState()
{
   var searchString = document.getElementById('searchStateString').value.replace("'", "\\'");
//  layer.setQuery("SELECT 'Latitude' FROM " + tableid + " WHERE 'State' contains ignoring case '" + searchString + "'");
// }
   var layer = new google.maps.FusionTablesLayer({
   query: {
     select: 'Latitude',
     from: '11QclwxxxxxxxxxxxxxxxmfBdFP3c', (or I could use tableid)
 where: 'State' contains ignoring case '" + searchString + "'";
   },
 });
 layer.setMap(map);
 }

答案 2 :(得分:0)

这是有效的......需要小心括号和逗号!

function searchAddress()   
{
  var searchString = document.getElementById('searchAddressString').value.replace("'", "\\'");
 //  layer.setQuery("SELECT 'Latitude' FROM " + tableid + " WHERE 'Address' contains ignoring case '" + searchString + "'");
  var layer = new google.maps.FusionTablesLayer({
    query: {
    select: 'Latitude',
    from: tableid,
    where: 'Address' contains ignoring case '" + searchString + "'" 
   }
 }); 
layer.setMap(map);
 }