私は年齢を探していて、この正確な問題を見つけることができませんが、問題があれば、遠慮なく正しい方向に向けてください。
簡単な説明:TEXTAREAが記載されたページがあります。このTEXTAREAは、クライアントのWebサイトのホームページを編集するために使用されるHTMLを受け入れます。
目的は、このTEXTAREAを非常に単純なmySQLテーブルに保存することです。
問題:問題は、TEXTAREAが512文字を超えると、データベースフィールドに何も保存されないことです。その下でそれはそれをうまく保存します。
コードは次のとおりです。
$homeTopLeft = addslashes(htmlentities($_GET['homeTopLeft'], ENT_QUOTES | ENT_IGNORE, "UTF-8"));
$homeNews = addslashes(htmlentities($_GET['homeNews'], ENT_QUOTES | ENT_IGNORE, "UTF-8"));
mysql_login();
$query = "UPDATE cmsData SET homeTopLeft='$homeTopLeft', homeNews='$homeNews', lastUpdated=NOW() WHERE entry=1";
$result = mysql_query($query) or die(reportError('Unable to save new CMS data'));
if (mysql_affected_rows() > 0) {
echo '<p class="ok">Pages Successfully Updated!</p>';
echo '<p style="border:1px dashed #ccc;">homeTopLeft = ' . $homeTopLeft . '</p>';
} else {
echo '<p class="err">Unable to update the home page</p>';
}
現在、$ _ GETメソッドを使用しています。これは、実際にはAJAXを介して関数を呼び出しているためです。これは、512文字未満で正常に機能します。
何では
ないか-mySQLフィールドサイズではありません。そのデータ型はTEXTであり、phpMyAdminを使用してエラーなしで手動でフィールドを増やしました。-TEXTAREAが512バイト未満の場合に機能するため、(私が知る限り)AJAX呼び出しではありません-照合(私は考えていません:私はそれを設定しlatin1_general_ci
て試しましたがlatin1_bin
、いくつかのUFTのもの)
最後の注意:呼び出しのため
、フィールドの実際のデータベースサイズはhomeTopLeft
512バイトより大きくする必要がありhtmlentities
ます。
また、これは、プレーンエディタとリッチテキストエディタTEXTAREA
のどちらを使用している場合でも発生することを付け加えておきます。tinyMCE
あなたが提供できるどんな助けもありがたいことに受け取られるでしょう。ありがとう!