我想在我网站的数据库中保存10.000页。
当我运行该文件时,每个页面都会发生此错误。
您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以获得在“_trackPageLoadTime”附近使用的正确语法];(函数() {var ga = document.createElement("script");ga‘在第1行。
我认为有一些字符导致了错误。
savedb.php
<?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解决了我使用字符时遇到的问题,但是现在有些表被保存时没有内容。
发布于 2013-02-02 17:17:36
您的文件中似乎有转义字符,如\或;。您需要做的是确保这些字符不会干扰查询。
使用这个
$html = mysql_real_escape_string($html);
$sql = mysql_query("INSERT INTO $tabela_bd(html) VALUES('$html')");发布于 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
在你的情况下,也许是这样:
$stmt = $pdo->prepare("insert into $tabela_bd( html ) values ( :html )");
$stmt->bindValue('html', $html);
$stmt->execute();发布于 2013-02-02 17:16:22
您不能转义html中的特殊字符。试试mysql_escape之类的。
https://stackoverflow.com/questions/14664321
复制相似问题