当我尝试在数据库中插入变量值时,它将作为新行。
这是我的mysql查询:
$query4 = "insert into $table (create_date, COMMAND, File_name, parent_id, ack, status, response, response_time, cloud_file_size, download_file_size) values('".date("Y-m-d H:i:s")."','wget' , 'abhi.tar.gz','','1', 'success', ' ".$str." ', '".date("Y-m-d H:i:s")."', '".$tar_size."', '".$size."')";
mysql_query($query4);
我认为我的变量需要\ n但我也使用$str=str_replace("\r\n","",$str);
下面在mysql日志中插入查询:
insert into service_logs_2014_02 (create_date, COMMAND, File_name, parent_id, ack, status, response, response_time, cloud_file_size, download_file_size) values('2014-02-06 19:08:19','wget' , '123.tar.gz','','1', 'success', '
2014-02-0619:08:19(7.63MB/s)-`/var/www/html/123/SRC/123.tar.gz'saved[1074190/1074190]
', '2014-02-06 19:08:19', '1.1M ', '1.1M ')
请提供解决方案。
答案 0 :(得分:1)
我不是100%确定您的问题是什么,但如果我理解正确,您想要从您尝试放入查询的字符串中删除换行符吗?
如果是这样的话:
假设换行只发生在字符串的开头和结尾:
您需要使用trim()
功能。 trim函数将删除任何前导或尾随换行符和空格字符。 (查看您的查询,您可能也希望在其他字段上使用)
如果字符串中可能出现换行符:
简单的解决方案是使用str_replace()
函数删除所有换行符,然后再使用trim()
函数删除任何行间距/尾随空格,如下所示:
$str = str_replace(array("\r", "\n"), array('', ''), $str);
$str = trim($str);
答案 1 :(得分:0)
这是因为您插入的值存在问题
2014-02-0619:08:19(7.63MB/s)-`/var/www/html/123/SRC/123.tar.gz'saved[1074190/1074190]
在插入值时,您在“123.tar.gz之前”。尝试在查询中使用mysql_real_escape_string
示例:
insert into service_logs_2014_02 (create_date, COMMAND, File_name, parent_id, ack, status, response, response_time, cloud_file_size, download_file_size) values('2014-02-06 19:08:19','wget' , '123.tar.gz','','1', 'success', mysql_real_escape_string('
2014-02-0619:08:19(7.63MB/s)-`/var/www/html/123/SRC/123.tar.gz'saved[1074190/1074190]
'), '2014-02-06 19:08:19', '1.1M ', '1.1M ')
答案 2 :(得分:0)
我得到了解决方案。
问题与grave accent
和Apostrophe
(')符号巫婆的价值
见下文:
2014-02-0619:08:19(7.63MB/s)-`/var/www/html/123/SRC/123.tar.gz'saved[1074190/1074190]
我删除了符号并解决了问题。
感谢您的支持。