私はDB内のいくつかのレコードを操作し、その値を別のテーブルに書き込む必要があります。これらの値の中には、文字列に '&'という文字列が含まれています(「& You」など)。これらの値をすべて見つけ出し、&の前に\を置くのではなく、どのようにしてこれらの値を&で窒息するテーブルに挿入できますか?perl DBクエリでエスケープすると
答えて
プレースホルダを使用します。 '$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
* This *。http://bobby-tables.com/perl.htmlも参照してください。 –
Oracleはプレースホルダと呼ばれます: '$ sth = $ dbh-> prepare_cached( 'INSERT INTO FOO(WHO)VALUES(:who)');' '$ sth-> bind_param( ':who'、$ who);'これは、 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. PerlとOracle DB - help
- 2. モンゴDBクエリと
- 3. CodeigniterでSQLクエリをエスケープする
- 4. paramterisedクエリでシングルクォートをエスケープする方法
- 5. SQLクエリでシンボルをエスケープするには?
- 6. luceneクエリでORとANDを正しくエスケープする方法は?
- 7. DBクエリ
- 8. メッセージ:dbのarray_keys()とクエリ
- 9. Zend FrameworkのクエリdbとgetParam
- 10. perlでは、$ DB :: single = 1と2の違いは何ですか?
- 11. Perl正規表現で特殊文字をエスケープする
- 12. Perl:バックスラッシュをエスケープしない文字列
- 13. DBサーバーでクエリを使用するCPU
- 14. Phonegap iOS DBクエリ
- 15. SQLiteクエリのエスケープ文字
- 16. LinqクエリからのDbクエリ -
- 17. Rails - クエリ文字列のアンパサンドをエスケープするとき
- 18. PerlでXMLを解析する::シンプルでエスケープ文字を追加する
- 19. クエリを送信するときにエスケープする必要があるのは何ですか?
- 20. ASIHTTPRequest DBクエリ/取得?
- 21. zend dbテーブルモデルと複数テーブルのクエリ
- 22. DBクエリとしての仮想ディレクトリ
- 23. mongo dbクエリでリストを渡す方法
- 24. MySQLクエリでエスケープ文字を無効にする
- 25. mysqlの挿入クエリでドットをエスケープする
- 26. クエリでデータを自動的にエスケープする
- 27. ルーネンとワイルドカードを使用したクエリで特殊文字をエスケープする
- 28. pythonのsqlalchemyのexecute()とpymysqlを使ってクエリで%をエスケープする方法は?
- 29. hibernateとSQLの文字列クエリでアンダースコアをエスケープする方法は?
- 30. DBにアクセスするSQL検索クエリ?
あなたはhttp://stackoverflow.com/questions/1137354/oracle-pl-sql-escape-character-for- – vol7ron
を読んでいますか? DBIを使用している場合は、bind_param()を使用して値をテーブルに引用します。 (文字列クエリを作成し、それを準備/実行することを前提としていますか? –