2014-02-06 231 views
0

當我嘗試在數據庫中插入變量值時,將其作爲新行。插入變量值在插入mysql查詢中插入新行

這裏是我的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

哪個問題的解決方案? –

+0

由於插入查詢中的斷行,它不會更新表。 – codemania

+0

如果你想更新你的行,你必須做'更新'而不是'插入'。或者我不明白你的問題:0 – Nanis

回答

0

我得到了解決。

問題與我的價值

grave accentApostrophe號(')來巫見下文:

2014-02-0619:08:19(7.63MB/s)-`/var/www/html/123/SRC/123.tar.gz'saved[1074190/1074190] 

我刪除這兩個符號和問題就解決了。

感謝您的支持人員。

1

我不是100%確定你的問題是什麼,但如果我正確理解你,你想從你試圖放入查詢的字符串中刪除換行符?

如果是這樣的:

假設換行只會發生在字符串的開始和結束:

你要使用trim()功能。修剪功能將刪除任何前導或尾隨的換行符和空格字符。 (其中,看着你的查詢,你可能要在其他領域使用,以及)

如果換行可以在字符串中出現:

簡單的解決辦法是使用str_replace()函數刪除所有換行符,其次,再次,將trim()功能,以消除任何leadng /尾隨空格,如:

$str = str_replace(array("\r", "\n"), array('', ''), $str); 
$str = trim($str); 
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  ')