2017-02-23 10 views
1

MySQLデータベースに文字列を挿入しようとしています - 引用符、アスタリスク、バックスラッシュなどを含む正規表現が含まれています - 以下は動作しません。私はまた、他の答えに基づいて喜んでhtmlentitiesを試してみました。不思議なエラー1064

qa_db_query_sub('INSERT INTO `^islamiqa_topics` (title, description, regexp) VALUES ($, $, $)', $title, $description, mysql_real_escape_string($regexp)); 

これは私が取得エラーです:

Database query error 1064 
You have an error in your SQL syntax; 
check the manual that corresponds to your 
MySQL server version for the right syntax to use near 'regexp) 
VALUES ('7/7', '3rd of March 1924 was the day the Ottoman' at line 1 

INSERT INTO `qa_islamiqa_topics` (title, description, regexp) VALUES ('7/7', '3rd of March 1924 was the day the Ottoman Caliphate was formally abolished in Turkey by Mustafa Kemal Atataurk.', '7/7(/2005)?|7(th)? july 2005|july 7.* 2005') 
+1

データベースに値を挿入するためにパラメータを使用します。 –

+0

どのクライアント言語を使用していますか? –

答えて

1

あなたがデータベースに追加する前に)(文字列をBASE64_ENCODEすることができます。

qa_db_query_sub('INSERT INTO `islamiqa_topics` (`title`, `description`, `regexp`) VALUES ($, $, $)', $title, $description, base64_encode($regexp)); 

また、@Delはregexpが予約語であることを知っているため、テーブルの列名として使用することはできません。 regexp(引用符を追加)を使用することもできます

+0

私はまだ同じエラーが発生します。 – Del

+0

私の答えを編集しました。もう一度やり直してください。テーブル名の前に^文字がありました。 – Alex

+0

同じ問題があります。テーブル名の前にqa_が必要です。^ – Del