Php 在mysql表中插入正斜杠时出现问题
我在将字符串“AM/PM”插入mySQL表时遇到问题Php 在mysql表中插入正斜杠时出现问题,php,mysql,mysql-real-escape-string,Php,Mysql,Mysql Real Escape String,我在将字符串“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' "
$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的链接,可能会。我已经忽略了它。这个插页没有问题。
问题在于如何查看查询结果 此插入没有问题。
问题在于如何查看查询结果 看起来斜杠在插入时进行了某种类型的转义。我假设它被您的php解释器解释为“恶意的” 运行以下命令:
if(get_magic_quotes_gpc())
echo "Magic quotes are enabled";
else
echo "Magic quotes are disabled";
让我知道结果。看起来斜杠在插入时进行了某种类型的转义。我假设它被您的php解释器解释为“恶意的” 运行以下命令:
if(get_magic_quotes_gpc())
echo "Magic quotes are enabled";
else
echo "Magic quotes are disabled";
让我知道结果。检查数据库中的数据类型,如果是Varchar(3),则MySQL将截断数据。检查数据库中的数据类型,如果是Varchar(3),则MySQL将截断数据。检查表的字符集和排序规则,如果是utf8字符集和utf8_-bin排序规则,我可以用文本列修复此问题,而latin1在正斜杠后截断。检查表的字符集和排序规则,如果是utf8字符集和utf8_-bin排序规则,我可以用文本列修复此问题,而latin1在正斜杠后被截断。能否请您回显$sql并发布结果?能否显示timeFormat字段的表架构/ddl?你确定你没有溢出字段吗?timeFormat列有多大?它是VARCHAR(3)或类似的缩写,然后当您尝试插入时它会截断您的数据。表中是否显示“AM/”或“AM/??”@狗:谢谢。这是瓦查尔(3)。也许您应该将其添加为答案?是否可以回送$sql并发布结果?是否可以显示timeFormat字段的表架构/ddl?你确定你没有溢出字段吗?timeFormat列有多大?它是VARCHAR(3)或类似的缩写,然后当您尝试插入时它会截断您的数据。表中是否显示“AM/”或“AM/??”@狗:谢谢。这是瓦查尔(3)。也许你应该把它添加为答案?我只是在phpMyAdmin中检查它,它说AM/??我还将其输出为XML,并显示AM/?你能说得更具体一点吗?@Woho87没有比这更具体的了。你的问题没问题。正斜杠在mysql中不是一个特殊的字符,在数据库中插入它没有任何问题。所以,它要么显示问题,要么你的字段太短,正如杜恩所说。你的timeFormat列的数据类型是什么?我只是在phpMyAdmin中检查它,它显示AM/??我还将其输出为XML,并显示AM/?你能说得更具体一点吗?@Woho87没有比这更具体的了。你的问题没问题。正斜杠在mysql中不是一个特殊的字符,在数据库中插入它没有任何问题。所以,要么是显示问题,要么就是你的字段太短,正如杜恩所说。你的timeFormat列的数据类型是什么?@Woho87:Thank:)狗的解决方案不错。@Woho87:Thank:)狗的解决方案不错。