Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在mysql表中插入正斜杠时出现问题_Php_Mysql_Mysql Real Escape String - Fatal编程技术网

Php 在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' "

我在将字符串“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的链接,可能会。我已经忽略了它。

这个插页没有问题。

问题在于如何查看查询结果

此插入没有问题。

问题在于如何查看查询结果

看起来斜杠在插入时进行了某种类型的转义。我假设它被您的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:)狗的解决方案不错。