将URL插入MySQL数据库

时间:2011-06-11 16:59:07

标签: php mysql sql

我在使用MySQL进行插入查询时遇到了麻烦。这就是我想要做的事情:

在我的表中的一个字段中,我想插入一堆URL及其各自的标题。我建立了这样的查询:

?content=<title of webpage>%%<url of webpage>%%<title of webpage>%%<url of webpage>%%

依此类推,具体取决于网址数量。

问题是如果URL包含类似“?var = somevalue”的内容,那么我的查询就会中断,因为MySQL会认为我正在声明一个新变量。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

我认为你应该用\

来逃避序列

如果您使用的是PHP,则选项是使用以下命令(它有多种形式):

  • 程序风格

    string mysqli_real_escape_string ( mysqli $link , string $escapestr )
    
  • 面向对象的风格

    string mysqli::escape_string ( string $escapestr )
    
    string mysqli::real_escape_string ( string $escapestr )
    

答案 1 :(得分:0)

以下是如何在PHP中使用占位符(我怀疑它是您正在使用的语言)

$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);

$name = 'one';
$value = 1;
$stmt->execute();

我从php.net

抓起来了

使用预处理语句的占位符可以提供多种功能,但其中一种功能是安全地将数据与代码分开,以便您描述的问题消失

从上述网站引用:

  

准备语句的参数   不需要引用;司机   自动处理这个。如果   应用程序专用于准备   声明,开发人员可以肯定   不会发生SQL注入   (但是,如果其他部分   查询正在建立   未转义的输入,SQL注入是   仍然可能)。