閲覧ありがとうございます。
今回、文書の投稿アプリを作ろうと考えており、そこで生じた問題について相談させていただきます。
Quillという、リッチテキストエディタのOSSを組み込んで使おうと考えています。Quillのエディタにユーザーに文章を
書いてもらいます。
QuillはJavascriptで動いていますが、ブラウザ上で文字の入力だけでなく、文字色を変えたり、太字にするなど、
文字の修飾が可能です。
ユーザーがQuillで入力した内容を、phpmyadminを用いて、DBに保存したいです。
Quillには、getContentsというAPIが用意されています。これは、DeltaというJSON型のオブジェクトを返します。
このオブジェクトをDBに保存したいです。
まずはphpmyadminのブラウザ上で、JSON型のカラムを作り、Deltaを直接挿入しようと試みました。
用いたDeltaオブジェクトは、Quillのドキュメントに載っていた、下のコードです。
{
ops: [
{ insert: 'Gandalf', attributes: { bold: true } },
{ insert: ' the ' },
{ insert: 'Grey', attributes: { color: '#cccccc' } }
]
}
挿入画面において、タブを確認すると、「カラム,データ型,関数,NULL,値」が並んでおり、関数とは何を指定すればいいのかわかりませんでした。
とりあえず、関数のところを空欄にして、挿入した結果、
「#3140 - Invalid JSON text: "Missing a name for object member." at position 4 in value for column 'contents.content'.」
というエラーが発生しました。
そこで関数のところはセレクトボックスだったので、適当に関数を選んでみると、「ABS,ACOS,AES_DECRYPT,ASCⅡ」などをできませんでしたが、
なぜか「BIN」という関数では挿入できました。
このような状況で、質問したいことは次の2点です。
1.そもそもphpmyadminでデータ型をJSONに設定して、保存する必要があるのか(TEXT型ではだめか)
2.必要がある場合、どのように保存すれば良いのか
ご質問頂いた点について、補足です。
phpmyadminのブラウザ上の管理画面で、JSON型で挿入しようと試みただけなので、コードは書いていません。一応、下のようなSQL文を実行したことになります。
SQL
1INSERT INTO `contents` (`contents`) VALUES ('{ ops: [ { insert: \'Gandalf\', attributes: { bold: true } }, { insert: \' the \' }, { insert: \'Grey\', attributes: { color: \'#cccccc\' } } ] }')
回答1件
あなたの回答
tips
プレビュー