Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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_Regex - Fatal编程技术网

删除php mysql结果反斜杠

删除php mysql结果反斜杠,php,mysql,regex,Php,Mysql,Regex,我有一个包含文件名和一些其他信息的表。当我运行以下查询时: select * from `documentinfo` WHERE `num`='40217' 我得到了正确的结果: Array ( [num] => 40217 [datetime] => 2011-09-15 15:22:07 [date] => 2011-09-15 [filename] => C:\redoak\DocumentsIN\Filer\8883894460_

我有一个包含文件名和一些其他信息的表。当我运行以下查询时:

select * from `documentinfo` WHERE `num`='40217'
我得到了正确的结果:

Array
(
    [num] => 40217
    [datetime] => 2011-09-15 15:22:07
    [date] => 2011-09-15
    [filename] => C:\redoak\DocumentsIN\Filer\8883894460_3044564210_07334802020001.mp3
)
运行查询时:

QUERY:`filename` REGEXP '^C:\\redoak\\DocumentsIN\\Filer'
我得到:

Array
(
    [num] => 35910
    [datetime] => 2010-12-03 17:34:38
    [date] => 2010-12-03
    [filename] => c:
edoakDocumentsINFiler8883894460_3043926485_05863748580001.mp3
)
请注意,结果已从文件夹名称中删除\项

我将以下php与这两个应用程序一起使用来显示:

while ($row = array_change_key_case(mysql_fetch_assoc($webquery), CASE_LOWER)) 
{
    print_r($row);  
}

查询任何num都可以正常工作。如果模式不包含反斜杠,则regexp查询可以工作。如果它包含反斜杠,则可以工作,但从表返回的数据缺少反斜杠。即使查询找到了正确的记录。感谢橡树

问题是:字符集结果 默认情况下,regexp查询是否返回不同的字符集结果,然后返回a=query


我尝试了以下更改角色集以查看发生了什么:

mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'") or die("ERROR SETTING CHAR SET");      
echo '<pre>debug: encoding=', mysql_client_encoding(), '</pre>';

$webquery=mysql_query($query);

echo '<pre>debug: encoding=', mysql_client_encoding(), '</pre>';
mysql\u查询(“设置字符集\u结果='utf8',字符集\u客户端='utf8',字符集\u连接='utf8',字符集\u数据库='utf8',字符集\u服务器='utf8')或die(“错误设置字符集”);
echo'debug:encoding=',mysql_client_encoding(),'';
$webquery=mysql\u query($query);
echo'debug:encoding=',mysql_client_encoding(),'';
它总是表示拉丁语1


我使用了
mysql\u set\u字符集('utf8')并更改为utf8,但结果没有更改。

MySQL将反斜杠字符解释为转义字符。对于查询中的反斜杠,请使用双反斜杠
\\

,在“select*from documentinfo WHERE num='35910'”上会得到什么?它会正确返回,并在文件名中使用反斜杠。谢谢,但是结果是相同的,查询可以定位正确的记录。然而,返回的数据已被修改,反斜杠和一些其他字符,他们似乎“转义”已被删除。。。在我从regexp或类似的查询中得到结果之前,不要从=查询中得到结果,谢谢!橡树