2013-04-03 44 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。