^ mys字查询日志中的M字符,它来自哪里?

时间:2011-10-15 06:19:10

标签: php mysql pdo centos

我正在使用PDO for php和。参数绑定权限。但是当我在CentOS 5.6上检查我的mysql-query.log时

我得到以下

UPDATE 
  ^ M site_folder_pages ^ M 
SET
  ^ M ^ M title = 'Schanz, Hermann',
  ^ M `desc` = 'Telefonnummer, E-Mailadresse',
  ^ M declared_encoding = NULL,
  ^ M detected_encoding = NULL,
  ^ M word_count = '230',
  ^ M last_checked = NOW(),
  ^ M date_modified = NOW() ^ M 
WHERE ^ M url_hash = '0001843c8b7bb28b46323fd1e8a3efa5' ^ M 
  AND site_id = '52f2b2940f79c1f7d623b066b2bce2e5' 

有了这个,我不确定这个查询是否正确执行,或者“^ M”字符是仅添加在日志文件而不是实际查询中。

在Google中进行快速搜索我也会找到具有相同字符的查询: Query with ^M

它只是在日志上吗?或者它是否真的使用该字符执行,因此执行期间出错?

2 个答案:

答案 0 :(得分:2)

^M对应chr(13),也表示为\r,并且是回车。

  • Unix中的Unix行终结者只有CHR(10)(或\n,新行字符)
  • Windows终止符为chr(13)chr(10)(或"\r\n",返回和换行)。

MySQL将忽略所有这些字符作为空格,因此您不必担心。

答案 1 :(得分:2)

^M是许多UNIX终端中回车的屏幕表示。您可能正在查看的是包含Windows样式行结尾(\r\n)的日志文件和/或查询字符串,但是以UNIX模式(\n)读取它,因此回车符({ {1}} = \r)正在显示。

由于^M\r都是空格字符,因此MySQL会忽略它们,因此不会导致实际问题。