在将字符串“ 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的任何链接。我已经忽略了它。
检查数据库中的数据类型,如果是Varchar(3),则MySQL正在截断您的数据。
此插入没有错。您如何看待查询结果就很重要。
检查表的字符集和排序规则,如果它是utf8字符集和utf8_bin排序规则,而latin1在正斜杠后被截断,则我可以使用TEXT列解决此问题。
看起来像是斜杠正在对INSERT进行某种类型的转义。我假设您的php解释器将其解释为“恶意”。
运行此:
if(get_magic_quotes_gpc())
echo "Magic quotes are enabled";
else
echo "Magic quotes are disabled";
让我知道结果。