我需要操纵DB中的一些记录,并将他们的值写入另一个表。其中一些值的字符串中有'&',即'我&您'。没有找到所有这些值并在任何&之前放置一个\,如何将这些值插入到无法在&上扼制的oracle的表中?转义和在Perl数据库查询
回答
使用占位符。不要把'$who'
放在你的SQL语句中,而要准备一个?在那里,然后绑定$ who,或者用$ who作为适当的参数执行。
my $sth = $dbh->prepare_cached('INSERT INTO FOO (WHO) VALUES (?)');
$sth->bind_param(1, $who);
my $rc = $sth->execute();
这比自己尝试做起来更安全,更快速。 (DBI中有一个“引用”方法,但这比这更好。)
这得到了它。感谢 – Lazloman
*这*参见http://bobby-tables.com/perl.html –
我最喜欢的单一特征Oracle被命名为占位符:'my $ sth = $ dbh-> prepare_cached('INSERT INTO FOO(WHO)VALUES(:who)');''$ sth-> bind_param(':who',$ who);'This降低了SQL的可移植性,但是如果您已经与Oracle紧密相连,它可以极大地提高可维护性。 –
这绝对是一个你不需要重塑的车轮。如果您使用的是DBI
,请勿逃避输入;使用占位符。
实施例:
my $string = "database 'text' with &special& %characters%";
my $sth = $dbh->prepare("UPDATE some_table SET some_column=?
WHERE some_other_column=42");
$sth->execute($string);
的DBD::Oracle
模块(以及所有其他DBD::xxxxx
模块)进行了广泛的测试和真实世界使用。让它担心如何让你的文本插入到数据库中。
- 1. 在查询中自动转义数据
- 2. Java和数据库查询?
- 3. 转换MS Access数据查询到SQL Server数据库查询
- 4. Perl和PostgreSQL转义$
- 5. 运行自定义数据库查询
- 6. MODx查询自定义数据库表
- 7. CSqlDataProvider:如何为数据库查询转义字符串Yii
- 8. 查询在线数据库
- 9. PHP查询在数据库
- 10. 查询数据库
- 11. 查询数据库
- 12. 查询数据库
- 13. 数据库 - 查询?
- 14. 在Django中查询和更新数据库查询?
- 15. 数据库结构和查询层次数据和数据
- 16. 转换数据库查询的未知格式到MySQL查询
- 17. 自动在同一数据库的数据库连接和查询的检查
- 18. 如何在Perl中为MySQL查询转义'\ n'?
- 19. 查询和制作生产数据库的转储
- 20. 自定义查询和修改数据
- 21. 在沙发数据库查询部分数据库查看
- 22. 自定义SimpleCursorAdapter,数据库查询和空指针异常
- 23. 和Sql自定义数据库查询指定的user_ID的
- 24. mysql数据库设计和查询optimazation
- 25. Swift和Firebase查询数据库
- 26. 查询,增加工资和数据库
- 27. 服务器和数据库查询
- 28. TPC DS查询和数据库
- 29. boost.asio和对数据库的查询
- 30. 数据库设计和查询
你看过http://stackoverflow.com/questions/1137354/oracle-pl-sql-escape-character-for- – vol7ron
如果您使用DBI,则使用bind_param()将值引入表中。 (我假设你正在建设一个查询字符串并将其传递到批发准备/执行? –