2

文字列「AM/PM」をmySQLテーブルに挿入するときに問題が発生しました

$timeFormat = mysql_real_escape_string($_POST['timeFormat']);

$sql="
UPDATE profiles
SET firstName = '$firstName', lastName = '$lastName', language = '$language', timeFormat = '$timeFormat'
WHERE profileId = '$profileId'
";
mysql_query($sql) or die('Error: '.mysql_error());

エラーはありませんが、表にはAM/??のみが表示されています。

編集:

$ sqlをエコーすると、次のようになります。

UPDATE profiles SET firstName = 'Johan', lastName = 'Lund', language = 'English', timeFormat = 'AM/PM' WHERE profileId = '27'

そして、はい、私はこの質問をする前に非常に長い間ウェブを検索しました。おそらく、Stackoverflowからのリンクがある場合。私はすでにそれを見落としています。

4

4 に答える 4

1

このインサートには何の問題もありません。
クエリ結果をどのように表示するかが問題になります。

于 2011-02-22T18:45:38.547 に答える
0

データベースのデータ型を確認してくださいVarchar(3)の場合、MySQLはデータを切り捨てています。

于 2011-02-22T18:58:28.687 に答える
0

テーブルの文字セットと照合を確認してください。これは、utf8 charsetとutf8_binの照合である場合、TEXT列で修正できましたが、latin1はスラッシュの後で切り捨てられていました。

于 2020-01-06T22:27:48.940 に答える
-1

そのスラッシュは、INSERT時にある種のエスケープを実行しているように見えます。私はそれがあなたのphpインタプリタによって「悪意のある」と解釈されていると思います。

これを実行します:

if(get_magic_quotes_gpc())
echo "Magic quotes are enabled";
else
echo "Magic quotes are disabled";

結果を教えてください。

于 2011-02-22T18:48:27.397 に答える