perl – 如何在DBI查询中使用变量作为表的名称?
发布时间:2020-12-16 06:08:49 所属栏目:大数据 来源:网络整理
导读:如何在DBI查询中使用变量作为表的名称?我知道如何使用占位符作为where子句的一部分,但是如何为表名执行此操作? 我想做这样的事情: my $table_name='table1'; my $query = $dbh_cgi-prepare("select * from ?"); $query-execute($table_name); 到目前为止,
如何在DBI查询中使用变量作为表的名称?我知道如何使用占位符作为where子句的一部分,但是如何为表名执行此操作?
我想做这样的事情: my $table_name='table1'; my $query = $dbh_cgi->prepare("select * from ?"); $query->execute($table_name); 到目前为止,我最终得到MySQL语法错误,因为DBI在名称table1周围添加了引号. 解决方法
占位符的一个限制是它们不能用于表名.您可以使用变量,而不是使用占位符.要确保变量的内容是安全的,请使用quote_identifier(),例如:
my $table_name='table1'; #-- Or get this from somewhere else my $safe_table_name = $dbh_cgi->quote_identifier($table_name); my $query = $dbh_cgi->prepare("select * from $safe_table_name"); $query->execute(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |