1

これをどのように表現するかはわかりませんが、私の問題は、フィールドが適切に更新されないことです。ユーザーが求人情報やイベントなどを更新できるページをセットアップしました。問題は、説明の一部が 3 段落以上の長さで、フォームが処理されたときにデータベースが正しく更新されないことです。これは、ユーザーが新しいアイテムを作成するときにも発生します。

一度に読み込めるテキストの量に制限はありますか?

私が使用している更新用のコードは次のとおりです。

mysql_query("UPDATE tbl_workers_club SET eventdate='".$newDate."', theme='".$theme."', text='".$text."', contactperson='".$contactperson."', contactphone='".$phone."', dateentered='".$dateentered."' WHERE specialID='".$id."' ");

新しいアイテムのコードは次のとおりです。

mysql_query("INSERT INTO tbl_workers_club (eventdate, theme, text, contactperson, contactphone, dateentered)
VALUES ('$newDate', '$theme', '$text', '$contactperson', '$contactphone', '$dateentered')");

このような質問は他に見当たりませんでしたので、ご存知でしたら教えてください。

4

2 に答える 2

1

どのようなエラーが発生したか (またはエラーがないか) を伝えると、この問題の診断に大いに役立ちます。コンテンツはデータベースで単に「切り取られている」だけですか? または、MySQL がエラーを PHP に返していますか? ただし、ここにいくつかのアイデアがあります...

mysql_real_escape_string() は、開始するのに適した場所です。単一のアポストロフィを含む入力は、コードを壊します。SQL のユーザー入力のクレンジングについて読んでください。Web 上にはたくさんのリソースがあります。それは絶対に任意ではありません。また、パラメーター化されたクエリ/準備されたステートメント、またはそこにある多くのORMライブラリ/フレームワークの1つも調べてください。

非常に長いエントリにのみ問題がある場合は、「テキスト」列がこれらの入力を保持するのに十分な大きさではない可能性もあります。VARCHAR(X) は X 文字のみを保持できます。代わりに MEDIUMTEXT のようなものを使用してください。

GET ではなく POST を使用してください。GET には、URL 経由で送信される値のサイズに制限があります。POST は、データを作成/変更するリクエストを送信する際の従来の方法です。

発生しているエラーに関する詳細情報がなければ、問題が何であるかを言うのは困難です。

于 2012-07-12T20:11:53.797 に答える
1

MySQLのセットアップを見てくださいmax_allowed_packet A communication packet is a single SQL statement sent to the MySQL server, a single row that is sent to the client, or a binary log event sent from a master replication server to a slave.

mysql> select * from information_schema.global_variables where variable_name like 'max_allow%';
+--------------------+----------------+
| VARIABLE_NAME      | VARIABLE_VALUE |
+--------------------+----------------+
| MAX_ALLOWED_PACKET | 1048576        |
+--------------------+----------------+
1 row in set (0.00 sec)
于 2012-07-12T20:01:38.877 に答える