我是 Google 表单和 Google Apps 脚本的新手。我有十个 Google 表单,在提交表单时,它们会填充相应的 Google 表格。

现在,这就是我想要的,在提交表单时,我希望该信息也存储在云 SQL 数据库中。哪些步骤将实现这一目标?

请您参考如下方法:

接受响应并将它们复制到电子表格的 Google 表单的正常数据流如下所示:



您有两个机会让表单提交触发器复制 Cloud SQL 数据库中的表单响应;您可以从 Google Form Form submit event 触发或 Google Sheets Form submit event .

无论哪种方式,您都将拥有一个为每次表单提交调用的脚本,以及一个包含响应值的事件对象。您的触发器函数应该使用 JDBC连接到数据库 - 该链接包含一个介绍,可引导您完成亮点。

例子

假设我们有一个表单询问两个问题,“姓名”和“年龄”。这将导致我们的电子表格中有 3 列;每个问题的“时间戳”加一个。

为了匹配,我们使用相同的三列设置了一个 Cloud SQL 数据库。

写入 Cloud SQL 数据库的 Google Sheets 表单提交触发器函数类似于以下未经测试的代码:

// Replace the variables in this block with real values. 
var address = 'database_IP_address'; 
var user = 'user_name'; 
var userPwd = 'user_password'; 
var db = 'database_name'; 
 
var dbUrl = 'jdbc:mysql://' + address + '/' + db; 
 
// Receive form response and replicate to a row in SQL table 
function handleFormSubmit( event ) { 
  var conn = Jdbc.getConnection(dbUrl, user, userPwd); 
 
  var stmt = conn.prepareStatement('INSERT INTO entries ' 
      + '(Timestamp, Name, Age) values (?, ?, ?)'); 
  stmt.setString(1, event.namedValues['Timestamp']); 
  stmt.setString(2, event.namedValues['Name']); 
  stmt.setString(3, event.namedValues['Age']); 
  stmt.execute(); 
} 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!