2013-04-03 59 views
-1

我想在SQL上插入下面的代碼,但它不會工作。 什麼問題:o問題與MySQL,特別是SQL功能

內容

$share_text="<img src='http://dosha.re/i/Uvhg.png'/>"; 

(這是一個IMG標籤,除了計算器將不顯示代碼)

$sql.=", '$share_text'"; 

正如你所知道的, Sharetext確實包含img擴展名,但由於某些原因,我得到:

您的SQL語法錯誤;請檢查 對應於您的MySQL服務器版本的手冊,以便在第1行'http://dosha.re/i/Uvhg.png'/>',1,'','Tue Apr 2 2013','09:51 PM')'附近使用

+0

謝謝傑克哈哈,這是我的一個noob錯誤。 – Blahwhore

+0

[請不要在新代碼中使用'mysql_ *'函數](http://stackoverflow.com/q/12859942/1190388)。他們不再被維護,並[正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到紅色框?改爲了解準備好的語句,然後使用[tag:PDO]或[tag:MySQLi]。 – hjpotter92

+1

@ hjpotter92你怎麼能告訴OP使用'mysql_'函數? –

回答

1

您需要調用addslashes函數,以此image tag即將到來的變量值爲函數。它是單個的錯誤slashes

+0

所以,如果我添加斜線,代碼將被接受,正確嗎? – Blahwhore

+0

是的,它會被接受。 –

+0

@dowvoter,你能告訴我降低答案的原因嗎? –

0

您使用單引號在src屬性,但你包裹在單引號整個事情了,所以這是行不通的:

$share_text = '<img src="http://dosha.re/i/Uvhg.png" />'; 
$sql .= ", '$share_text'"; 

或者,可能會更好,用mysql_real_escape_string()PDO::quotemysqli::real_escape_string

$sql .= sprintf(", '%s'", mysql_real_escape_string($share_text)); 

這是不可能從這個告訴你真正的查詢是什麼,但我會建議使用準備好的語句,這樣你就不必擔心逃避SQL。