0

我已将许多 html 文件中的文本复制到一个文本文件/变量中,我想将此数据(基本上是 html 代码)插入 mysql 数据库。我试过mysql_real_escape_string。但它仍然没有工作。这就是我正在做的事情:

$contentFromHtmlFile=file_get_contents($file);  
$all_html_content.=$contentFromHtmlFile; 
$all_html_content=mysql_real_escape_string($all_html_content);  
$insert_query = "insert into $databasetable (pdf_id,pdf_text_data) values (190,$all_html_content);";

mysql_query($insert_query) or die(mysql_error());

这是错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<meta charset=\&quot;utf-8\&quot; />\n\n<div id=\&quot;jpedal\&quot; style=\&quo' at line 1

这里我要插入的文本链接:http: //pastebin.com/F3BD745h

4

2 回答 2

1

您已将字符串值放在单引号内:

 $insert_query = "insert into $databasetable(pdf_id,pdf_text_data)values(190,'$all_html_content');";

PS: mysql_函数已废弃,请勿使用。使用 mysqli 或 PDO。

于 2013-09-03T15:28:28.630 回答
0

将变量括在单引号中以表示它是一个字符串(在这种情况下):

$insert_query = "INSERT INTO $databasetable(pdf_id, pdf_text_data)
                 VALUES(190, '$all_html_content');";
                             ^                 ^

此外,如果您不需要使用该字符串进行搜索或任何类似操作,我建议将其转换为普通字符串base64_encode()

$contentFromHtmlFile = file_get_contents($file);  
$all_html_content .= $contentFromHtmlFile;  
$all_html_content = base64_encode($all_html_content);
$all_html_content = mysql_real_escape_string($all_html_content);  
于 2013-09-03T15:31:54.707 回答