SQLite クエリ内の単一引用符文字をエスケープします
SQLite データベースにデータを挿入する場合、構文エラーを防ぐために一重引用符などの特殊文字を適切にエスケープすることが重要です。よくある問題は、一重引用符を正しくエスケープできないことです。
たとえば、SQL クエリでは次のようになります。
<code class="language-sql">INSERT INTO table_name (field1, field2) VALUES (123, 'Hello there'\');</code>
エスケープ文字 '' が期待どおりに機能しません。一重引用符はエスケープされませんが、SQL では特殊文字として機能します。
回避策は、一重引用符を二重にすることです。 SQLite では、他の多くのデータベースと同様に、文字列内の単一引用符を表すために 2 つの連続した単一引用符 ('') を使用する必要があります。したがって、正しいクエリは次のようになります:
<code class="language-sql">INSERT INTO table_name (field1, field2) VALUES (123, 'Hello there''s');</code>
これにより、単一引用符文字がエスケープされ、データベースに正しく挿入されます。
SQLite のドキュメントによると、文字列定数は一重引用符で囲まれており、文字列内の一重引用符は 2 つの連続する一重引用符を使用してエンコードできます。 SQLite は、バックスラッシュ文字を使用した C スタイルのエスケープをサポートしていません。
以上がSQLite INSERT ステートメントで一重引用符を適切にエスケープする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。