大きな問題があります。 JSONでフォーマットされたPOSTリクエストを受け取るコントローラメソッドがあります。CakePHPは長いテキストを保存していません
JSONデータを保存すると、MySQLの長いテキストである1つのフィールドが保存されません。しかし、 "Hello World"のような短いテキストを書くとDBに保存されます。私はここで何が間違っているのか分からない。
これは私のJavascriptコードです:
$http({
url: 'http://customblahblahblah',
method: 'POST',
data: "user_id="+ user_id +
"&token="+ token +
"&object="+angular.toJson(myobject),....
これは私のPHPコードです:
public function save(){
if($this->request->is('post')){
if($this->checkUser($this->request->data['user_id'], $this->request->data['token'])){
$myObject = json_decode($this->request->data['object'], true);
if($this->MyObject->save($myObject)){
.....
}
....
}
}
}
ここで何が悪いのでしょうか?
プロパティに「Hello World」のようなテキストが設定されていると保存されますが、新聞記事のように長いテキストを送信した場合は保存するように見えます(例外は発生しないため、 save()はtrueを返しますが、データは保存されません)。
明らかに、テキストを保存するDBテーブルフィールドのタイプに問題があります。 – Salines
latin1_general_ci照合で長いテキストとして設定されています –