首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将file_get_contents保存在数据库中

问将file_get_contents保存在数据库中
EN

Stack Overflow用户
提问于 2013-02-02 17:11:53
回答 5查看 4.4K关注 0票数 0

我想在我网站的数据库中保存10.000页。

当我运行该文件时,每个页面都会发生此错误。

您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以获得在“_trackPageLoadTime”附近使用的正确语法];(函数() {var ga = document.createElement("script");ga‘在第1行。

我认为有一些字符导致了错误。

savedb.php

代码语言:javascript
复制
<?php 
include "conexao.php";

for ($nr=1; $nr<=10000; $nr++){
    $url = "http://www.site.com/u$nr";
    $html = file_get_contents($url);

    set_time_limit(120);

    $tabela_bd = "paginas";

    $sql = mysql_query("INSERT INTO $tabela_bd(html) VALUES('$html')");
    if ($sql) {echo "Cadastrado com sucesso!!";
} else {
echo "Falha ao cadastrar.".mysql_error();
}

}

?>

@edit解决了我使用字符时遇到的问题,但是现在有些表被保存时没有内容。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-02-02 17:17:36

您的文件中似乎有转义字符,如\或;。您需要做的是确保这些字符不会干扰查询。

使用这个

代码语言:javascript
复制
$html = mysql_real_escape_string($html);
$sql = mysql_query("INSERT INTO $tabela_bd(html) VALUES('$html')");
票数 1
EN

Stack Overflow用户

发布于 2013-02-02 17:22:18

不要使用不推荐的mysql_*函数。而是使用mysqli_*函数。

更好的是,使用像PDO这样的抽象库,它支持占位符的使用。这将根据需要自动应用转义。请参见:

http://php.net/manual/en/book.pdo.php

占位符的使用示例:

http://www.php.net/manual/en/pdo.prepare.php

在你的情况下,也许是这样:

代码语言:javascript
复制
$stmt = $pdo->prepare("insert into $tabela_bd( html ) values ( :html )");
$stmt->bindValue('html', $html);
$stmt->execute();
票数 3
EN

Stack Overflow用户

发布于 2013-02-02 17:16:22

您不能转义html中的特殊字符。试试mysql_escape之类的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14664321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档